配布プログラムは、
http://lecture.ecc.u-tokyo.ac.jp/johzu/joho-kagaku/text/code/
からダウンロードしてくださいな。
練習5.1 (再起的アルゴリズムの使用)
略
練習5.2 (正しさの確認)
確認は略。
関数はこちら↓
def fib_count(k) ←補助関数
j=0
for i in 0 .. k
if fibr(i) != fibl(i)
j=j+1
end
end
j
end
def fib_check(k) ←すべて同じ値ならtrueと返す
j==0
end
練習5.3 (近似値との比較)
include(Math)
def fiba(k)
phi = (1+sqrt(5))/2
phi**(k+1)/sqrt(5)
end
誤差は自分で調べてね><
練習5.4 (代入の順序)
試してないけど、多分2^(k-1)が出力されるでしょう。
入れ替えたファイルはこうなります。
def fibl(k)
f = 1
p1 = 1
for i in 2..k
p1 = f
p2 = p1 ←すなわち、p1=p2=fになるので
f = p1+p2 ←fは、前のfの二倍になる
end
f
end
つまり、fは繰り返すごとに二倍になります。
練習5.5 (計算時間の実測)
続く
0 件のコメント:
コメントを投稿