先说一下题目要求必须用python完成,看了老师的代码嗯……,还是自己写吧
直接撸代码最后再说知识点。
#多项式乘法取个好名好养活哈哈 #将a,b从字符串转换为int类型 #前面矗接用c=[a]*8会导致一个数组的变化引起其他数组的变化 print("【格式:1 1 1 1 1 1 1 1】x的系数为0输入0,注意请将二进制的高位靠后,低位靠前输入") print("注意输出结果为逆序【变成过程中因为二进制高位的问题所以用逆序输出】")
介绍一下重要的知识点:
+x^4+x^2+x+1转换为(这里我就不逆序写了),x^7+x+1转换为然后直接异或就行了。
因为g(x)可以化为( ),所以本来的乘法就化成了f(x)跟化简完的式子相乘这时候想想上面的式子,x是将x不断带入,是不是套公式就荇了连mod都省了,这里有个重点就是先移位记住,是先移位!然后再根据b7的值决定是不是要跟m(x)异或
整道题比较难的部分就是那个乘法公式不77算法怎么算好写,但归根结底两个公式一个异或,一个上面那个公式还有就是异或会不断复用,就别作死懒得写函数直接拿头解了别问我77算法怎么算知道的。
等以后有空再修改一下感觉有地方说的不够详细。