LoginSignup
0
0

More than 3 years have passed since last update.

エクセルでシードを指定して疑似乱数を発生させる

Posted at

 エクセルにはrand関数という関数があり、セルに「=rand()」と入力するだけで0以上1未満の乱数を返してくれます。
 乱数を発生させるこの関数は非常に便利ですが、一つ欠点があるとすれば、計算を行うたびに乱数が変化してしまい、再現性がないところにあります。プログラミングであれば、乱数にシード値を設定して、疑似乱数(乱数のように見えるが、該当のシード値を入力すれば同じ乱数(っぽいもの)を返してくれる)を発生させることで、分析の再現性を担保できます。その機能はエクセルのrand関数には残念ながらないので、マクロで作ってみることにしました。

Sub Giziransu()
    Dim f As Single
    Dim num As Long
        For num = 1 To 10
            f = Rnd(-num) ' シード値を -num にする
            Debug.Print (f)
            f = Rnd
            Debug.Print (f)
            Cells(num, 1).Value = f
        Next num
End Sub

 4行目では、「For num = 1 To 10」と書いていますが、これは乱数を10個発生させることを意味しています。もっとたくさん発生させたい場合は数字を増やしましょう。
 9行目の「Cells(num, 1)」は1Aセルから乱数の入力をしていくことを意味しており、もし1Bセルから始めたければ「Cells(num+1, 2)」、2Aセルから入力したければ「Cells(num, 2)」としましょう。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0