サーチ…


フィボナッチ数を計算する

ビジュアル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

この関数は、最初に関数n1または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