2017年6月11日日曜日

Excel VBAで数学 4

 Excel VBAを使った簡単な数学プログラミングの続きです。

 今回はEuclidの互除法です。
 アルゴリズムの基本という感じがします。実は、次回への布石です。

 ソースコードは、ご自由にご利用ください。ただし、趣味のプログラムなので、保証はありません。

Option Explicit

'Euclidの互除法

Public Sub Macro()
    Dim x As Long
    Dim y As Long
   
    x = 123
    y = 333
   
    Sheet1.Cells(1, 1) = x
    Sheet1.Cells(1, 2) = y
    Sheet1.Cells(1, 3) = Euclidean(x, y)
End Sub

Public Function Euclidean(x As Long, y As Long) As Long
    Dim a As Long
    Dim b As Long
    Dim r As Long
   
    If x < y Then
        a = y
        b = x
    Else
        a = x
        b = y
    End If
   
    r = a Mod b
   
    Do While 0 < r
        a = b
        b = r
        r = a Mod b
    Loop
   
    Euclidean = b
End Function

0 件のコメント:

コメントを投稿