电脑生成随机整数,为什么范围需要两端有界?
电脑生成随机整数,为什么范围需要两端有界?
About
我们对这个问题简单回答一下
1.随机数生成需要有熵,熵就是一种混乱程度。但是电脑里面的熵是有限的,电脑生成真随机数的时候必须得等熵攒到了一定的大小的时候才能吐出来随机数。
2.无限范围内的(均匀分布)随机数的熵是正无穷。也就是说从信息论角度来看电脑也提供不了无穷的随机数范围。
3.但是在实际操作中,简单的伪随机生成器就是a(i+1)=c*a(i)+b mod n。(比如c语言,java语言等等)
也就是说这个随机数范围天生就是在[0,n-1]之间。取更大的随机数范围不会真正影响它的随机数范围。