Python中线性反馈移位寄存器(LFSR)的实现与应用

更新:10-29 神话故事 我要投稿 纠错 投诉

大家好,Python中线性反馈移位寄存器(LFSR)的实现与应用相信很多的网友都不是很明白,包括也是一样,不过没有关系,接下来就来为大家分享关于Python中线性反馈移位寄存器(LFSR)的实现与应用和的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

图1

n=8:D7~D0,蓝色标注的反馈系数从右到左(从高到低)为“101110001”。图中除了最左边和最右边的“1”外,其余都可以看出是否进行。 XOR 运算指令。从反馈系数左边第二位开始,将D0的反馈系数设置为零,则实际异或指示为:“01110000”,分别对应D7至D0的系数。定义输入:

array_init=255 #多项式的初始值,设置为十进制255

tap_init="101110000" #LFSR tap,D0系数已设置为零

tap=tap_init[1:] #从第2位开始,将输入转换为8位二进制,用于实际的异或指令“01110000”。注意“08b”的‘0’不能省略,以保证高位仍然是0。8位:

array_init_bin="{:08b}".format(array_init) 定义输出,因为Python不支持直接分配给字符串的某个位,但list可以。这里,输出首先转换为列表,然后在处理后转换回字符串:

array_new="0"*len(array_init_bin)

array_new=list(array_new) #转换为列表,通过分配字符串位和异或反馈开始移位。注意数组[0:7]对应图1中的D7~D0:

for i in range(len(array_init_bin)): #对每一位进行操作,D6-D7,D5-D6,D4-D5.

j=i+1

if(i==(len(array_init_bin)-1)): #array[0]--array[7],即D7--D0,

j=0

if(tap[i]=="1"): #"1"表示需要异或运算,Dx^D7

array_new[i]=str(int(array_init_bin[j])^int(array_init_bin[0]))

否则:

array_new[i]=str(array_init_bin[j])

array_new="".join(array_new) #将列表转回字符串,最终得到第二轮数组from "11111111": "10001111"。

将其定义为def,然后在循环中调用它以获取更多序列。完整代码如下:

def lfsr(ai,t):

array_init=ai#255 #多项式

tap_init=t#"101110000"#tap

点击=tap_init[1:]

array_init_bin="{:08b}".format(array_init)

array_new="0"*len(array_init_bin)

数组新=列表(数组新)

对于我在范围内(len(array_init_bin)):

j=i+1

if(i==(len(array_init_bin)-1)):

j=0

if(tap[i]=="1"):

array_new[i]=str(int(array_init_bin[j])^int(array_init_bin[0]))

否则:

array_new[i]=str(array_init_bin[j])

array_new="".join(array_new)

打印(array_new)#二进制

print(int(array_new,2)) #decimal

打印(十六进制(int(array_new,2)))#十六进制

with open("test.txt", "a+") as f: #写入txt

f.write(str(hex(int(array_new,2)))+"n")

返回int(array_new,2)

#拨打20次

初始化=255

点击="101110000"

用户评论

繁华若梦

我一直想学习一下LFSR, 这个Python的实现看起来不错!

    有16位网友表示赞同!

素颜倾城

我想看看LFSR在实际应用中有什么用处?

    有5位网友表示赞同!

花菲

这篇文章能教会我如何自己造一个LFSR代码吗?

    有6位网友表示赞同!

漫长の人生

Python确实很适合做这种逻辑运算,效率一定很高吧?

    有14位网友表示赞同!

蹂躏少女

我读过一些关于 LFSR 的理论知识,但从来没有亲手实现过,现在终于有机会了!

    有14位网友表示赞同!

信仰

这个标题让我感觉很有趣,我要去看一看这个技术是怎么运作的。

    有9位网友表示赞同!

冷青裳

线性反馈移位寄存器听起来很厉害的样子,Python竟然能实现!

    有19位网友表示赞同!

孤自凉丶

LFSR 在生成伪随机数方面很重要吗?

    有7位网友表示赞同!

栀蓝

学习 LFSR 可以让我更好地理解计算机原理吧?

    有19位网友表示赞同!

爱情的过失

我准备学习Python了,这个教程看起来很有帮助!

    有8位网友表示赞同!

米兰

LFSR 这个名字听起来很复杂啊,希望文章能解释清楚。

    有20位网友表示赞同!

杰克

我觉得编程实现LFSR比手算方便得多.

    有15位网友表示赞同!

岁岁年年

我之前不知道 LFSR 是什么,现在好奇想了解一下。

    有13位网友表示赞同!

浅巷°

Python的代码示例总是很易懂,期待看这个LFSR的实现。

    有13位网友表示赞同!

寻鱼水之欢

我想知道这个Python 实现的LFSR有什么优缺点?

    有17位网友表示赞同!

凉城°

这篇文章是不是会介绍一些 LFSR 的应用场景呢?

    有13位网友表示赞同!

ー半忧伤

我以后可以用 Python 实现LFSR来生成随机数吗?

    有18位网友表示赞同!

发呆

学习 LFSR 能让我在数据安全方面的知识更丰富吗?

    有5位网友表示赞同!

鹿先森,教魔方

Python的 LFSR 实现一定很灵活吧!可以根据需要改变参数吗?

    有6位网友表示赞同!

不忘初心

我想知道LFSR在哪些领域有广泛应用。

    有13位网友表示赞同!

【Python中线性反馈移位寄存器(LFSR)的实现与应用】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:读书笔记:揭秘非传统思维,告别平庸生活 下一篇:探索彼岸花的深层寓意与美丽传说