我在SageMath的Galois Field遇到了问题。我无法将二进制转换为多项式。
如果我有二进制数,1010101如何在多项式1010101 = x ^ 6 + x ^ 4 + x ^ 2 + 1中转换此数字。
答案 0 :(得分:0)
我不知道是否有一种内置方式(我认为你已经看过了),但是你总能做到以下几点:
sage: P.<x> = PolynomialRing(ZZ)
sage: binString = "1010101"
sage: arrayOfTerms = [0]*len(binString)
sage: binString = binString[::-1] #Flip it so that the first digit corresponds to the constant term
sage: for i in xrange(len(binString)):
....: arrayOfTerms[i] = (x**i)*int(binString[i])
....:
sage: poly = sum(arrayOfTerms)
sage: poly
x^6 + x^4 + x^2 + 1