首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法理解线性同余生成器的代码

无法理解线性同余生成器的代码
EN

Stack Overflow用户
提问于 2021-05-24 00:28:53
回答 1查看 394关注 0票数 2

我正在制作另一个python脚本来执行线性同余生成器来生成55个伪随机数,但是很难理解线性同余生成器的算法,以及我的脚本是如何工作的,即使脚本对我来说很简单。

基于python脚本,为什么输出在每个循环中都在变化?对于线性同余生成器,python脚本正确吗?

代码语言:javascript
运行
复制
#!/usr/bin/python3
# Fix variable for the seed, modulus, a and c 
seed = 8 
a = 2
c = 2 
m = 20

# counter for how many iterations we've run
counter = 0
#Perfom number of iterations requested by user
while counter < 50:
    # Store value of each iteration
    seed = (a * seed + c) % m
    counter = counter + 1
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-24 02:15:33

由于要更新种子变量,每次迭代的输出都会发生变化,您可以使用上一次迭代中的种子来更改下一次迭代的种子。

seed = (a * seed + c) % m

在第一次迭代中,您的种子是5,所以

(3 * 5 + 3) % 19

给出18.关于第二次迭代

(3 * 18 + 3) % 19

给出0,因为3*18 +3是57,57模m是19是0。因此循环继续,每个先前的种子都会影响下一个种子。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67665466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档