【发布时间】:2016-10-10 16:59:06
【问题描述】:
我有 LFSR 的代码并得到错误的结果,前 8 位应该是 01110010 但我得到的是 0101111001。
我说的是伽罗瓦 LSFR:en.wikipedia.org/wiki/Linear-feedback_shift_register
谁能看出这段代码有什么问题?
def lfsr(seed, taps):
for i in range(10):
nxt = sum([ seed[x] for x in taps]) % 2
yield nxt
seed = ([nxt] + seed)[:max(taps)+1]
for x in lfsr([0,0,1,1,1,0,0,1],[6,5,1]) :
print x
【问题讨论】:
-
想解释一下 LFSR 的含义吗?此外,这个问题有点接近暂停标准之一,因为它本质上是在问“为什么这段代码不起作用?”
-
LFSR: en.wikipedia.org/wiki/Linear-feedback_shift_register 你是什么意思?不能问bug吗?
-
该链接应该进入问题正文(我相信您不希望任何人知道所有可能的首字母缩写词,对吧?)。从第二部分开始,我的意思是这个问题本质上意味着“请为我调试我的代码”,并且在 StackOverflow 上不鼓励此类问题,因为它们通常不会为社区提供长期利益——其他人不太可能有确切的相同的代码。
-
寻求帮助是好的,但它是一种很好的形式来展示一些努力来理解问题。你为什么期待 01110010,你从哪里得到 11110111?您的代码生成 0101111001,看起来也不像。
-
@neX 请参阅stackoverflow.com/help/on-topic 中的第 1 点 “寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身中重现它所需的最短代码。” 如果满足这些条件,那么询问错误就可以了。