方法一
思路与算法
现有一个 RandX() 和 RandY() 两个随机数 x ([1,X]) 和 y ([1,Y]),那么让每一位产生一个随机数来生成一个新的数,如 $ (x - 1) y + y
现有 $ Rand49() = ( Rand7() - 1 ) 7 + Rand7() $
采用拒绝采样的方法将生成的随机数缩短到 10k 的区间里问题就解决了
1 | public int rand10() { |
现有一个 RandX() 和 RandY() 两个随机数 x ([1,X]) 和 y ([1,Y]),那么让每一位产生一个随机数来生成一个新的数,如 $ (x - 1) y + y
现有 $ Rand49() = ( Rand7() - 1 ) 7 + Rand7() $
采用拒绝采样的方法将生成的随机数缩短到 10k 的区间里问题就解决了
1 | public int rand10() { |