乱数を使って現れる座標を変えるというプログラムを作っています。
現れる座標には幅があって、その幅の中から必ず現れます。
ここまで出来たのですが、その座標に偏りを持たせたいのですがうまくいきません。(上>下・上>真ん中)
どうすれば偏りを持たせることが出来るでしょうか。よろしくお願いします。(C++・標準rand関数)
確率の偏らせ方
Re:確率の偏らせ方
あらかじめ多めにとって修正するのはどうでしょうか?
ソースは確認していないので動くかわかりません。
0~100の値を取得したい場合
(80~100を多めに出す)
ソースは確認していないので動くかわかりません。
0~100の値を取得したい場合
(80~100を多めに出す)
int r = rand()%120; if(r > 100) r = r - 20;こんな感じにすれば偏り?が出せるかもしれません。
Re:確率の偏らせ方
すいません。
解決を付けてしまいましたが、やっぱりわからないことが出てきました。
例では80~100を多く出していましたが、これを例えば10~20を多くするにはどうすればよいでしょうか?
解決を付けてしまいましたが、やっぱりわからないことが出てきました。
例では80~100を多く出していましたが、これを例えば10~20を多くするにはどうすればよいでしょうか?
Re:確率の偏らせ方
>10~20を多く出したい
上記では 余分な20(101~120)の時に80~100になるように設定していますが、
10~20なら
訂正:
10~20でしたね。上記の例だと10~30ですね。
if(r > 100) r = (r - 100)/2 + 10
とかでよいのではないでしょうか。ほかにもありそうですが...
上記では 余分な20(101~120)の時に80~100になるように設定していますが、
10~20なら
int r = rand()%120; if(r > 100) r = r - 90;にすればよいと思われます。
訂正:
10~20でしたね。上記の例だと10~30ですね。
if(r > 100) r = (r - 100)/2 + 10
とかでよいのではないでしょうか。ほかにもありそうですが...
