利用Python提供的线性结构与算法,实现基于线性反馈移位寄存器(LFSR)的二元伪随机序列的生成、测试、综合。 LFSR伪随机序列的解释: 它是特殊的时间序列s[j],j≥0; 该序列中的数只取0或1,称这样的序列为二元序列; 该序列的前L个值是已知的,其后的值是待生成的; 序列的连续L个值构成一个切片slice,表示为状态向量S[j]=(s[j-L],s[j-L+1,…,s[j-1]),j≥L; 它有L个联结系数,表示为联结向量C=(c[L],c[L-1],…,c[1]),联结系数取值于0或1,或取自整数集; 当j≥L时,s[j]=<c,s[j]>(mod2),先作内积,再作模2操作。 它具有良好的伪随机性:表现上是随机的,内在有生成规律,并且有周期性; 可用于统计学、密码学。 要求如下: 1. 编写程序,完成下述计算任务: 输入:联结向量C,初始状态向量s[0:L] 输出:s[0:2**L],可以输出更长的序列 2. 编写程序,测试LSFR伪随机序列的统计特性。关于伪随机序列的统计特性,请查阅文献。 3. 编写程序,完成下述计算任务: 输入:伪随机序列s 输出:能够生成s的联结向量C 提示:算法不唯一,可自行思考,可查阅资料 4.编写程序,完成下述计算任务: 输入:伪随机序列s,扰动序列e(与s同长的二元序列) 输出:能够生成s+e联结向量C,其中s+e表示两个序列的逐位异或: […,s[i]+e[i],…] 5. 在4的基础上,设计优化版本的算法,使得L+W(e)尽可能小,其中W(e)表示e的重量:e的非0元素的个数。此项计算任务参考2020全国高校密码数学挑战赛第一题。
第3题
B.递归调用语句不允许出现在循环结构中。
C.在Python中,一个算法的递归实现往往可以用循环实现等价表示,但是大多数情况下递归表达的效率要更高一些。
D.可以在函数参数名前面加上星号*,这样用户所有传来的参数都被收集起来然后使用,星号在这里的作用是收集其余的位置参数,这样就实现了变长参数。
第4题
A、在Python中,一个算法的递归实现往往可以用循环实现等价表示,但是大多数情况下递归表达的效率要更高一些。
B、递归调用语句不允许出现在循环结构中。
C、Python中函数的返回值如果多于1个,则系统默认将它们处理成一个字典。
D、可以在函数参数名前面加上星号*,这样用户所有传来的参数都被收集起来然后使用,星号在这里的作用是收集其余的位置参数,这样就实现了变长参数。
第5题
B.break用来跳出最内层for或者while循环,脱离该循环后程序从循环代码后继续执行
C.每个continue语句只有能力跳出当前层次的循环
D.Python通过for、while等保留字提供遍历循环和无限循环结构
第6题
A、Python通过for、while等保留字提供遍历循环和无限循环结构
B、每个continue语句只能跳出当前层次的循环
C、遍历循环中的遍历结构可以是字符串、文件、组合数据类型和range()函数等
D、break用来跳出最内层for或者while循环,脱离该循环后程序从循环代码后继续执行
第10题
B.Python中if-else语句用来形成二分支结构
C.Python中if-elif-else语句描述多分支结构
D.分支结构可以向已经执行过的语句部分跳转
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!