Jak jednoduse spocitat rosny bod

Jan Waclawek wek@evona.sk
Čtvrtek Prosinec 2 16:26:53 CET 2004


Takto?
Najvacsia chyba medzi 2 a 65535 je okolo 0.14% ak to teda mam dobre.


wek



var
     vstup,a,l:longint;
     i:integer;
     f:text;
begin
   assign(f,'');
   rewrite(f);
   for vstup:=2 to 65535 do begin
     a:= vstup shl 16;
     l:=0;
     while (a>(1 shl 16)) or (a<0) do begin  {a<0 znamena vlastne a>=(1 
shl 31) v pascale nemame unsigned long}
       a:=a shr 1;
       l:=l+30103;
     end;
     while a<(1 shl 16) do begin
       a:=a + (a shr 8);
       l:=l-169;
     end;
     writeln(f,vstup,' ',
             l/100000:10:7,' ',
             ln(vstup)/ln(10):10:7,' ',
             (l/100000-ln(vstup)/ln(10))/(ln(vstup)/ln(10))*100:5:2,'%');
   end;
   close(f);
end.




Další informace o konferenci Hw-list