Jak jednoduse spocitat rosny bod
Jan Waclawek
wek@evona.sk
Pátek Prosinec 3 15:15:01 CET 2004
Neviem ake kriterium mam zvolit, ale to primitivne "najvacsia chyba" sa
zhorsilo na 0.18%.
Inak som velkom tej logike "niekolkonasobnym zaokruhlenim sa to zlepsi"
neporozumel, podla mna sa to musi zhorsit.
wek
PS. Cela robota bola v prepisani 4 konstant, TP nebolo poruke?
Danhard wrote:
> No, tak nejak, byl to jen priklad nepresneho pocitani s nepresnymi cisly.
> Treba to priblizovani nasobenim 1.01hex budu delat v nejhorsim pripade 178x,
> takze to bude chtit aspon nejake zaokrouhleni, treba i nesymetricke, kdyz to
> snizi konecnou chybu. Lepsi zavest treba dalsi stupen priblizeni treba x
> 1.1hex (tj. pricist operand posunuty o 4 bity).
> Ta konstanta je priblizne 0.00169, presneji 0.001693158 (aspon tolik me ukaze
> moje lacina kalkulacka), tak po binarni transformaci do 16 bit cisla (x65536)
> bych byl rad aby to bylo 110,962804, na cele to bude 111, tj. 006F hex, a v
> prepoctu zpatky 0.001693725, takze ta celkova chyba bude hnedka o neco lepsi
> :o)
> VSECHNY ! vypocty s iracionalnimi cisly jsou vzdy kompromis mezi rychlosti,
> slozitosti a presnosti vypoctu.
>
> Kdyby jsi zkusil ty priblizovaci konstanty binarne, nebylo by to lepsi ?
> x2 = + 19728
> x1.01hex = -111
> vysledek /65536
>
> Danhard
> ----------------
>
> 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.
>
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>
Další informace o konferenci Hw-list