假设我想获得0-37的随机数……按照正常的方法,应该写成这样:复制代码 但是,这样会出现一个问题:
如果%random%等于0-37,除以38后取余数,得到的是0-37
如果%random%等于38-75,除以38后取余数,得到的是0-37
……
如果%random%等于32718-32755,除以38后取余数,得到的是0-37
如果%random%等于32756-32767,问题就来了,它得到的余数是0-11
假设%random%生成0-32767的概率都是1/32768,那么,上面的代码得到0-11的概率为862/32768,生成12-38的概率为861/32768,相差了1/32768。
有没有一种方法,可以获得概率相等的随机数? |