Visual Basic .NET Language
再帰
サーチ…
フィボナッチ数を計算する
ビジュアルBasic.NETは、ほとんどの言語のように、再帰関数は、一定の条件の下で自分自身を呼び出すことにより、プロセスを可能にします。
フィボナッチ数を計算するためのVisual Basic .NETの基本的な関数を次に示します。
''' <summary>
''' Gets the n'th Fibonacci number
''' </summary>
''' <param name="n">The 1-indexed ordinal number of the Fibonacci sequence that you wish to receive. Precondition: Must be greater than or equal to 1.</param>
''' <returns>The nth Fibonacci number. Throws an exception if a precondition is violated.</returns>
Public Shared Function Fibonacci(ByVal n as Integer) as Integer
If n<1
Throw New ArgumentOutOfRangeException("n must be greater than or equal to one.")
End If
If (n=1) or (n=2)
''Base case. The first two Fibonacci numbers (n=1 and n=2) are both 1, by definition.
Return 1
End If
''Recursive case.
''Get the two previous Fibonacci numbers via recursion, add them together, and return the result.
Return Fibonacci(n-1) + Fibonacci(n-2)
End Function
この関数は、最初に関数n
が1
または2
と等しいパラメータで呼び出されたかどうかを調べることによって機能します。定義により、フィボナッチシーケンスの最初の2つの値は1と1であるため、これを決定するための計算は必要ありません。 n
が2より大きい場合、関連付けられた値を簡単に検索することはできませんが、フィボナッチ数が前の2つの数値の合計に等しいことがわかっているため、 再帰 (フィボナッチ関数を呼び出す)によってそれらを要求します。逐次再帰呼び出しは、-1と-2のデクリメントでより小さい数値で呼び出されるため、最終的には2より小さい数に達することがわかります。これらの条件( 基本ケースと呼ばれる )に達すると、スタックは巻き戻され、私たちの最終結果を得る。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow