參考:YWY
從x到<x
考慮已知等概率,我們可以通過任意操作得到:
只需要每次隨機的時候,判斷得到的值是否滿足即可
int a=randx();
while(a>=y)a=randx();
因爲等概率能得到,首先每一個都是等概率的,特意去掉某些數字剩下的仍然是等概率的。
從x到xx
即利用生成一個進制數。
每一位都是,這樣能保證這個數一定是等概率的。
兩位:
int a=randx()*x+randx();
已知上述兩個,我就可以先通過後者擴大隨機範圍,再通過前者得到自己想要的結果。