第12講 Functionプロシージャの再帰的使用の学習
第2話 Functionプロシージャの再帰的使用による和の計算
コード例
Private Sub CommandButton1_Click()
Dim n As Long
n = Cells(2, 4)
Cells(5, 1) = "答え"
Cells(5, 2) = f(n)
End Sub
Function f(n As Long)
If n = 0 Then f = 0
If n - 1 > -1 Then
f = n + f(n - 1)
End If
End Function
fはもちろん次のように変更しても同じです。
Function f(n As Long)
If n = 1 Then f = 1
If n - 1 > 0 Then
f = n + f(n - 1)
End If
End Function
解説
1からnまでの和をn#であらわすとすると、
n#=n+(n−1)#
です。
例えば、
5#とはと聞かれると、
5#=5+4#と答えます。
では4#とは聞かれ、
4#=4+3#と答えます。
同様に
3#とは?
3#=3+2#
2#とは?
2#=2+1#
(コード例が
Function f(n As Long)
If n = 1 Then f = 1
If n - 1 > 0 Then
f = n + f(n - 1)
End If
End Functionのとき
)
1#と何かと聞かれ、
If n = 1 Then f = 1
から1と答えます。
遡及いしていって一番内側の人形にたどり着いてはじめて1#の正体が
1#=1
であることがわかったのです。
今度は逆遡及していきます。
2#=2+1=3
3#=3+3=6
4#=4+6=10
5#=5+10=15
これで、5#の正体がわかりました。
では、Functionプロシージャの再帰的使用によって、はじめの値、終わりの値、変化の幅を入力して
いろいろな和を求められるようにしましょう。
シート例
実行例
ここで2乗の和とは
2の2乗+5の2乗+8の2乗+11の2乗
です。
第1話へ 第3話へ
VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る