前提・実現したいこと
乱数をn個生成し、その和Fを求め
Fe=(√(12/n))*(F-(n/2))
の結果を関数値で返すfunctionプロシージャを作る
Feを複数回呼び出しFeの値を複数発生させ
さらにそれらFeの合計と平均を計算するサブプロシージャを作成する
平均はゼロに近づいているが分散は8.何々など1に近づいている様子がない
該当のソースコード
vba
1Sub heikin() 2 3Dim n As Long, mmm As Double, ma As Double, aver As Double 4 5Dim f As Long 6 7Randomize 8n = InputBox("n") 9v = InputBox("v") 10 11For y = 1 To v 12mmm = sh(n) + mmm 13Next y 14 15ma = ma + mmm 16 aver = ma / v 17 18mau = mau + mmm ^ 2 19 aver2 = mau / v 20 21variance = aver2 - (aver) ^ 2 22 23MsgBox "平均; " & aver & vbCrLf _ 24 & "分散; " & variance 25End Sub 26 27 28 29Function sh(n As Long) As Double 30Dim f As Double, fe As Double 31 32For o = 1 To n 33 34 f = f + Rnd 35 36Next o 37 38fe = Sqr(12 / n) * (f - (n / 2)) 39sh = fe 40 41End Function 42 43
###試したこと
functionプロシージャ内のfor文をサブプロシージャに変えたり
式を変えたりしてみた
漠然としていてすみません
回答3件
あなたの回答
tips
プレビュー