前橋さんのページの掲示板でこんな質問がありました。
で、早速、私はJavaScriptを使って記述してみました。
<考え方>
n:預金を下ろす回数、m:一回でおろす額、b:最初の預金残高、f(n):預金残高、利子率:5%とすると
なので、
f(n)=f(n1)*1.05^(n1)
…*a^b:aのb乗
という漸化式が成り立っています。
これをJavaScriptで書いてみるとこんな感じのプログラムができました
漸化式は"再帰でプログラミング"というのが定石(そう考えているのは私だけ?)なので、再帰を使ってみました。
思ったよりすっきりとしたプログラムがかけましたね。
再帰は下手をするとすぐにスタックオーバーフローを起こす危険があります。
なので、スタックの深さと再帰を抜ける条件を慎重に考えなければなりません。
が、プログラムを簡潔に書けるのはやはり再帰を使う大きなメリットですね。
で、早速、私はJavaScriptを使って記述してみました。
<考え方>
n:預金を下ろす回数、m:一回でおろす額、b:最初の預金残高、f(n):預金残高、利子率:5%とすると
預金を下ろす回数(n) | 預金残高(f(n)) |
1 | b |
2 | (f(1)m)*1.05^1 |
3 | (f(2)m)*1.05^2 |
4 | (f(3)m)*1.05^3 |
5 | (f(4)m)*1.05^4 |
・ | ・ |
n | (f(n1)m)*1.05^(n1) |
なので、
f(n)=f(n1)*1.05^(n1)
…*a^b:aのb乗
という漸化式が成り立っています。
これをJavaScriptで書いてみるとこんな感じのプログラムができました
漸化式は"再帰でプログラミング"というのが定石(そう考えているのは私だけ?)なので、再帰を使ってみました。
思ったよりすっきりとしたプログラムがかけましたね。
再帰は下手をするとすぐにスタックオーバーフローを起こす危険があります。
なので、スタックの深さと再帰を抜ける条件を慎重に考えなければなりません。
が、プログラムを簡潔に書けるのはやはり再帰を使う大きなメリットですね。