2012年1月23日月曜日

いきなりサブルーチンを書く

現在やっていることは
ルートの計算なんですけど
ちょっと行き詰ってました

現時点で100以下の数値のルートは求めれるんですけど
(1以下の数値は有効な桁が少なくなりますが、たぶん求められる)
100以上の数のルートをどうやって計算しようかと

1e+3以上1e+5以下なら求める数字を1e+5で割って解を1e+3で割って
ちなみに1e+xとは10のx乗のことです
1e+3は100。1e+5は10000です
ちょうど1e+(2n+1)以上1e+(2n+3)未満になるように
再帰的な解決の仕方をしようと考えていたんです

でも、再帰で解こうとしたのが誤りで
結局繰り返しで解くことにしました
解を求める数字が100以上なら100で割り返り値Bにする変数に10掛けます(初期値1.0)
更に100以上なら同じ計算を続けます
何回か100で割った数値を返り値A
何回か10で割った数値を返り値Bとします
返り値Aのルートを求めて返り値Bをかけると、計算の出来上がり
1.0より小さい数も似たような計算で処理します

やっぱ僕は再帰苦手やわー
処理の全貌がつかみ難いのが苦手です
後、処理を書いてからサブルーチンに分割しようとしたのも敗因です
いきなりサブルーチンを書いてくっつけるのも良い手段ですね
ちなみにこの処理はまだメモを書いただけで
これから処理を書く予定です

0 件のコメント:

コメントを投稿