require 'benchmark' Benchmark.measure{ 「式」 }.totalで「式」の実行時間を計測して,gnuplotでグラフにしたものです.
def fibl(k) f=1 p1=1 for i in 2..k p2 = p1 #fib(i-2) p1 = f #fib(i-1) f = p1 + p2 #fib(i) end f #fib(k) endで,forの繰り返し部分
p2 = p1 #fib(i-2) p1 = f #fib(i-1) f = p1 + p2 #fib(i)の中に変数iが現れません.
for i in 2..kは何のためにあるのでしょうか?
for 「変数」 in 「式1」 .. 「式2」 「命令1」 ... 「命令n」 endという構文は,「変数」の値を「式1」から「式2」の値まで1つずつ順に 変化させながら,「命令1」から「命令n」を毎回実行する繰り返しを意味します.
for i in 1..(k-1)でも良いわけですが,元のプログラムとの関連からを考えて,2からkまで変化させています.
ruby vote.rb 選択肢番号のように使います.
ruby check.rb ex01.rbと実行すると,関数を与えた時の入力と出力があっていることが確認できます.