Почему функция degree() не работает должным образом в сочетании с функцией diff ()? Ошибка: степень () принимает ровно один аргумент (задано 0)
R = BooleanPolynomialRing(names=('s0', 's1', 's2', 's3', 's4', 's5', 's6', 's7',
's8', 's9', 's10', 's11', 's12', 's13', 's14', 's15',
's16', 's17', 's18', 's19', 's20', 's21', 's22', 's23',
's24', 's25', 's26', 's27', 's28', 's29', 's30', 's31',
's32', 's33', 's34', 's35', 's36', 's37', 's38', 's39',
's40', 's41', 's42', 's43', 's44', 's45', 's46', 's47',
's48', 's49', 's50', 's51', 's52', 's53', 's54', 's55',
's56', 's57', 's58', 's59', 's60', 's61', 's62', 's63',
's64', 's65', 's66', 's67', 's68', 's69', 's70', 's71',
's72', 's73', 's74', 's75', 's76', 's77', 's78', 's79',
's80', 's81', 's82', 's83', 's84', 's85', 's86', 's87',
's88', 's89', 's90', 's91', 's92', 's93', 's94', 's95',
's96', 's97', 's98', 's99', 's100', 's101', 's102', 's103',
's104', 's105', 's106', 's107', 's108', 's109', 's110', 's111',
's112', 's113', 's114', 's115', 's116', 's117', 's118', 's119',
's120', 's121', 's122', 's123', 's124', 's125', 's126', 's127',
'k0', 'k1', 'k2', 'k3', 'k4', 'k5', 'k6', 'k7',
'k8', 'k9', 'k10', 'k11', 'k12', 'k13', 'k14', 'k15',
'k16', 'k17', 'k18', 'k19', 'k20', 'k21', 'k22', 'k23',
'k24', 'k25', 'k26', 'k27', 'k28', 'k29', 'k30', 'k31',
'k32', 'k33', 'k34', 'k35', 'k36', 'k37', 'k38', 'k39',
'k40', 'k41', 'k42', 'k43', 'k44', 'k45', 'k46', 'k47',
'k48', 'k49', 'k50', 'k51', 'k52', 'k53', 'k54', 'k55',
'k56', 'k57', 'k58', 'k59', 'k60', 'k61', 'k62', 'k63',
'k64', 'k65', 'k66', 'k67', 'k68', 'k69', 'k70', 'k71',
'k72', 'k73', 'k74', 'k75', 'k76', 'k77', 'k78', 'k79',
'k80', 'k81', 'k82', 'k83', 'k84', 'k85', 'k86', 'k87',
'k88', 'k89', 'k90', 'k91', 'k92', 'k93', 'k94', 'k95',
'k96', 'k97', 'k98', 'k99', 'k100', 'k101', 'k102', 'k103',
'k104', 'k105', 'k106', 'k107', 'k108', 'k109', 'k110', 'k111',
'k112', 'k113', 'k114', 'k115', 'k116', 'k117', 'k118', 'k119',
'k120', 'k121', 'k122', 'k123', 'k124', 'k125', 'k126', 'k127'))
R.inject_variables()
S = list(R.gens()[0:128])
S_128 = list(R.gens()[0:128])
K = list(R.gens()[128:256])
#State Update
for i in range(160)
feedback = S[0] + S[47] + S[70]*S[85] + S[91] + 1 + K[i%128]
for j in range(127):
S[j] = S[j+1]
S[127] = feedback
print(S[64])
X = diff(S[64], S_128[123])
print('\n')
print(X.degree())
print('\n')
Это код функции обновления состояния. Я использую BooleanPolynomialRing, и в этом коде я хотел бы распечатать степень X, которая является дифференциацией S64 от S123.
Например, я могу правильно напечатать (S[64].degree()), в то время как я не могу напечатать (X.degree()).
Ниже приводится ошибка отладки:
Traceback (most recent call last)
<ipython-input-1-8d559eeb82ae> in <module>
58 X = derivative(S[Integer(64)], S_128[Integer(123)])
59 print('\n')
---> 60 print(X.degree())
61 print('\n')
62 #print(S[i])
TypeError: degree() takes exactly one argument (0 given)
Может ли кто-нибудь указать мне, в чем проблема и что нужно сделать, чтобы получить степень с помощью функции diff() (степень X)?