Могат ли компютрите да смятат?
Има само един коментар. Скучно му е!
Та, могат ли компютрите да смятат? Аз твърдя, че не. Мисля да напиша по-дълъг текст с повечко примери и обязнения но сега, за загрявка ще ви покажа само един. Виждал съм го по книгите, ако не се лъжа е на А. Ралстон (или Ралстън?)
Погледнете следната функция на Pascal:
function Smetka(x: Extended): Extended; begin Smetka:=(sqr(x+1)-2*x-1)/sqr(x) end;
Разпишете на хартия това, което пресмята. Да напомня, че sqr(x) повдига аргумента на квадрат. Разкрийте скобите и опростете. Лесно е - изискват се знания, които се учат в училище. Какво получихте? Единица? Според вас, тази функция винаги ще получава единица, независимо от стойността на x? Ако мислите така, значи правилно сте опростили израза. И само толкова. Мислите, предполагам, че се шегувам, че ще извадя от ръкава си някакво уж доказателство, в което има хитра уловка и всъщност не е никакво доказателство. Следният код ще ви заблуди, че всичко е наред:
{$D+$R+}
const
Step=0.000244140625;//1/4096
function Smetka(x: Extended): Extended;
begin
Smetka:=(sqr(x+1)-2*x-1)/sqr(x)
end;
var
y: Extended;
k1,k2: LongInt;
begin
k1:=0;
k2:=0;
y:=Step;
while (y<=1000) do begin
if(Smetka(y)=1) then inc(k1)
else inc(k2);
y:=y+Step;
end;
writeln('k1=',k1);
writeln('k2=',k2);
end.
А как ви се струва
writeln(Smetka(2.56E-14));
Тествайте …
Определете блога на 2008-ма година!!!
One Response to 'Могат ли компютрите да смятат?'
Leave a Reply
You must be logged in to post a comment.

Въпреки, че официалният език за програмиране на http://blog.gfurnadzhiev.info е Pascal специално за Данчо преписвам кода на PHP. Пък и да видя дали интерпретаторите могат да смятат
function Smetka($x){ return (($x+1)*($x+1)-2*$x-1)/($x*$x); }; $Step=0.0625;//=1/16 $y=$Step; $k1=0; $k2=0; while ($y< =1000) { if(Smetka($y)==1) $k1++; else $k2++; $y=$y+$Step; }; echo "Верен резултат " . $k1 . " пъти\nГрешен резултат " . $k2 . " пъти\nРезултат за размисъл " . Smetka(0.0000000000000256) . "\n";Георги Фурнаджиев
15 Aug 08 at 18:48