フィボナッチの私の回答
nが比較的小さな数までである場合、テーブルを持つのが最速であることは間違いない
じゃあテーブルを持たない場合、
固定有効精度であれば、以下で求めるのが計算量のオーダーが1
(int)(exp(.4812118250596034475*n-.8047189562170501873)+0.5)
floatやdoubleではなく、4倍精度や100倍精度であってもオーダーは1
上の2個の定数は事前に計算しておけばいいし、
毎回計算してもnとは無関係
nが非常に小さい数でなければ単純に加算するよりは上記の方が速いでしょう
floatやdoubleであれば1行で済みます
探検
C言語なら俺に聞け 146
■ このスレッドは過去ログ倉庫に格納されています
821デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/08(水) 18:58:28.93ID:UEEWq45u0■ このスレッドは過去ログ倉庫に格納されています
