【技术展示】使用线性同余法得到服从均匀分布的随机数
scratch吧
全部回复
仅看楼主
吧务
level 15
遧傂鼝 楼主
总有人觉得sc自带随机数分布不够均匀,于是我们可以采用线性同余法。线性同余法是一种被广泛应用的(伪)随机数生成算法。它的优势在于计算量小,以及可以获得完全均匀的分布。它的原理是以(较长的)周期输出随机数。
线性同余法公式:
,其中a、c、m是正整数常数。
当n=0时Xn(X0)为随机数种子,可使用sc自带随机数积木获取。
为了获得更好的随机数,需要满足:c与m互质(否则随机数的周期较小);m的质因数之积能够整除a-1(同样为了得到尽可能大的随机数周期);a、c、X0均小于m(否则最初的几个值可能不在周期内)。
编写程序并运行后我们可以发现,随机数在其取值范围内分布完全均匀。可以在随机数输出后对其进行加法及乘法运算来更改其取值范围。
示例文件请在阿儿法营搜索:天火XO
2022年08月17日 13点08分 1
level 8
前排
资瓷[滑稽]
2022年08月17日 14点08分 2
level 12
好诶
2022年08月18日 01点08分 3
吧务
level 15
遧傂鼝 楼主
相关阅读:box-muller法得到服从正态分布的随机数[滑稽]
2022年08月21日 12点08分 5
level 4
吧主好强[欢呼]
2022年08月30日 03点08分 6
level 12
[真棒]
2022年09月11日 03点09分 7
1