いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

0.4から0.6くらいの乱数が他より多めに欲しいときどうするか

 いろんなプログラミング言語にRandom()といった名前の関数があります。乱数を発生させます。仕様はいろいろですが、例えば0以上1以下の乱数が欲しいときにはRandom(0, 1)などと書けばよいのです。ゲームでランダムな場所に敵を発生させたいときなどに使えます。こういった関数は0から1までの値を等確率で出現させるものが多いと思います。でも、場合によっては0.5付近の乱数が多く欲しいこともあるでしょう。ゲームを展開する空間の端の辺りに敵が出現し過ぎても面白くないからです。そういう、0.5辺りの乱数が多く出現するような関数を考えてみましょう。Random(0, 1)で0以上1以下の乱数は手に入るとしましょう。これを用います。

 次のようなグラフを持つ関数f(x)を考えます。式は場合を分ければすぐ書けるでしょう。

f:id:Inuosann:20210225121754p:plain

f:id:Inuosann:20210225122224p:plain

数Ⅱの直線の方程式の公式を使いました。f(Random(0, 1))を使えば0.2以上0.8以下の乱数が確率0.8で得られるはずですから、これが求めるものです。

 

 グラフを変えて、次のようなものを使ってみると……

f:id:Inuosann:20210225124114p:plain
確率 0.9 - 0.1 = 0.8 で 0.25 から 0.75 の値が得られますから、これを使ってもよいでしょう。式は3次関数などで実現できます。 

www.omoshiro-suugaku.com

 

 何にせよ、x = 0.2 ~ x = 0.8 くらいで y = 0.4 ~ y = 0.6 などとなるようにすればよいわけです。グラフを描いて、あとは式を求めるだけです。