立方根の計算
Posted feedbacks - Erlang
1> c(cube_root).
{ok,cube_root}
2> io:format("~15.13f~n", [cube_root:cube_root(10.0)]).
2.1544346900319
ok
3> io:format("~15.13f~n", [cube_root:cube_root(100.0)]).
4.6415888336128
ok
1 2 3 4 5 6 7 8 9 10 11 12 | -module(cube_root).
-export([cube_root/1]).
cube_root(Num) -> cube_root(Num, 0.0, 1000.0).
cube_root(Num, Min, Max) ->
Err = 0.0000000000001,
Mid = (Min + Max) / 2.0,
if
((Mid - Err) < Min) and (Max < (Mid + Err)) -> Mid;
((Mid * Mid * Mid) - Num) > 0 -> cube_root(Num, Min, Mid);
true -> cube_root(Num, Mid, Max)
end.
|



にしお
#3411()
Rating1/1=1.00
ただし、このお題の趣旨は実数区間での探索なので、 立方根関数があっても使ってはいけません。 指数関数と対数関数も禁止します。
Pythonで表現した入出力の例:
[ reply ]