シュミレーションでは、 得られた数と実際が合っているのかどうか、 確認しなくてはならない。
米の収穫量: 72000 [kg] ほたるの生息数 -26 匹 ほたるはいなくなりました。
ほたるの数は自然数の値であるので、自然数を取らなくなったら、 ゼロにして、計算を止める、 という処置が必要である。
このプログラムでは、firefly という method で、 実行部分からもらってきた egg と chemical に応じて、 返す値を変更している。
p 文などで計算される値を打ち出し、 実際にそうなるかどうか、bc -l で確かめておこう。
数値が理屈に通らないようなもの、例えば負の数値が method で使われたら、 method で値を判定する必要があることがある。 蛍の数が負のときは 0 に変更するようにしよう。
def firefly(egg, chemical)
egg -= 2 ** chemical # 農薬を散布するとほたるの卵の数は減る
if egg < 0
return 0 # 卵の数は負の数をとらない
else
return egg
end
end
最後に計算された数値が戻る。何も指定しなければ、計算した値がそのまま return するので、 return 文は必要ないが、場合分けをするため return 文 が必要となる。実行し、0 匹になることを確かめよう。