偏りのある乱数のアルゴリズム(コード)を教えてください。
ただし、中心極限定理などに見られるような「中心にのみ偏る」乱数ではなく、「任意の位置を中心に偏る」乱数です。例えば、範囲を0.0<1.0、任意の位置を0.75とした場合の分布グラフを見ると、0.75がカーブの頂点となります。
また一方で、複数の偏りが見られる乱数のアルゴリズムも知りたいです。カーブが心電図のように複数見られる乱数です。ビットマップ上にプロットすると、部分的に点の集合が形成されるようなものが理想的です。
※プログラミング言語・精度・速度は不問。本人数学に関しては素人です。
No.1ベストアンサー
- 回答日時:
専門家でないので適切なことを言えるかどうかわかりませんが、
偏りの中心が本当に任意であれば、ただの平べったい乱数に戻ってしまいますよね。
ご質問は、偏りの中心がどこかにあることを想定しているので、まずは、1回乱数を発生させるか、勝手に意図的に決めるかして、偏りの中心を決めないといけませんね。
さらには、偏ると言っても、偏り方に無限の種類がありますから、例えば、ガウス分布とかポワッソン分布とかの類の確率分布の情報を固定して与えなければ、やはり平べったい乱数になってしまいますよね。
というわけで、
1.偏る場所や個数を決める、あるいは発生させる
2.偏りの程度や形を定義する分布(関数)の式の中に、普通の乱数を代入する。
あるいは、偏る場所が複数あるような分布にしたければ、上記の分布(関数)を複数計算して、それらの和をとってもよいと思います。
確率(頻度)を規格化したければ、足した関数の個数で割り算すればよいでしょう。
例えば、心電図のごとく、範囲内に2つピークがあるような分布ですと、もっとも簡単な方法は、ピークの場所だけが異なる2つのガウス分布の足し算でしょう。
他の波形にしたければ、分布(式)を取り替えればよいです。
以上は一次元の話なので、二次元で、ある点の回りに分布をつくりたい場合は、上記に対して従来の中心分布を応用した考え方になるでしょう。
答えになっているかどうかわかりませんが、私が「適当にこんな感じの作って」と仕事を頼まれれば、とりあえず、こんな感じでやります。
・・・って、そもそもご質問の目的・用途は何なのか、ちょっと気になりますが。
丁寧なご説明、ありがとうございます。まだよくわからない箇所もあるので、勉強不足を痛感しています…。
でも、一回で結果を出そうとせず、プロセスを複数回に分ければ、意外と簡単にできそうな気もしてきました。
No.2
- 回答日時:
与えられた確率分布で分布するような乱数を作りたいのであれば、
参考URLのような方法があります。
参考URL:http://www.murata.elec.waseda.ac.jp/~mura/lectur …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報