第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話へ

004
  


VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る