【发布时间】:2017-10-08 02:36:02
【问题描述】:
我正在尝试重新创建一个在 Matlab 中使用的 乘法同余算法(找到它here,第 9.2 节,阅读它以了解一些上下文)
基本上,我有 4 个变量
a = 13
c = 0
m = 31
最后一个,我无法格式化为代码,因为它破坏了下标:
x0= 1
有了这四个,我想重现这样的东西:
xk+1= a *xk+ c mod m
到目前为止,我有:
a = 13
c = 0
m = 31
base = 2 # Does not work with 0 for some reason
x = int(x='1', base=base)
for i in range(8):
rand = a * x + c % m
base += 1
x = int(x='1', base=base)
print(rand)
我的输出是:
13, 13, 13, 13, 13, 13, 13, 13...
即使,根据文档,应该是:
1, 13, 14, 27, 10, 6, 16, 22...
所以我不确定我是否完全误解了这个问题,或者我想要完成的事情在 Python 中是不可能的,或者我只是发疯了,但我非常需要一些建议。非常感谢任何见解。
【问题讨论】:
-
1将是1,不管是什么基数。