日期:2014-05-18  浏览次数:20956 次

随机函数问题,如何得到正态值的随机数?
System.Random()得到的随机数经测试,随机是随机了,但是不是正态分值,比如产生1   ~   500之间的随机数,大值出现的概率很大,不能得到正态分布的随机值,有什么办法可以解决这个问题?

谢谢

------解决方案--------------------
到底是正态分布还是均匀分布?

正态分布可以用大数定例自己生成,不过比较慢——用Random取30个均匀分布的随机数,然后取他们的平均。

或正用第三方的:
http://www.codeproject.com/cs/library/Random.asp?df=100&forumid=331238&exp=0&select=1925969

------解决方案--------------------
投机一些的办法,如果只有1到10的随机,估计会好一些。首先生成位数,比如生成3到7位的随机数,可以先随机从3到7中间取一个数,比如5,然后就循环5次,每次从0到9随机生成一个数字,比如取出来的是3、9、5、8、1,然后组合,就变成随机数字39581。这样估计会好一些。