- 29 名前:1 [2018/05/31(木) 09:15:43.81 ID:N+l2Be6d.net]
- >>27
スレチですが。 乱数関係だと。 一定の確率で複数の分岐処理を扱う時。 1番最初は select case 0to0.2 〜case 0.6to0.7みたく直接数字書いたけど、もっと楽にできないかと考えました。 で、分岐させたい数の配列t(n)を作り、 その中に確率の大小を入れ(合計が100にならなくても良い) 、t(n)の値の合計sumを出し、それを使ってt2(n)に0.0〜1.0の範囲として割り振る。 例えば3つの分岐で、1つめが45、2つめが90、3つめが15だとすると、合計150なので、1は30%、2は60%、3は10% なので、0.3,0.6,0.1となり、t2(0)は0.0と0.3 t(1)は0.3と0.9、t2(2)は0.9と1.0の開始値と終了値を格納。 ここらへんは、ちょっと冗長。終了値だけで事足りそう。 で、乱数を出し、 n回だけ繰り返してそれがどの範囲かの番号を返す。 その後それぞれの処理へ。 要約すると、、、 t(n)にそれぞれの当たり確率を適当な整数で示せば、その内のどれに当たるかを返してくれる関数。 分岐の確率を手書きしなくて済むことと、合計100にしなくても良くなった瞬間でした。
|

|