SageMath中为PolynomialRing变量赋值后能否重置该变量?
解决SageMath中重置多项式变量x的简便方法
当你把多项式环的变量x赋值为具体数值后,不需要重新定义整个多项式环,直接从已有的环R17中重新获取生成元即可恢复x作为变量的身份:
方法一:使用gen()方法获取生成元
# 当x已被赋值为25后,执行以下语句重置x x = R17.gen() # 现在可以正常定义多项式了 f2 = R17(x + 15) f2 # 输出: x + 15 f2(1) # 输出: 16
方法二:通过变量名获取生成元
也可以通过环的变量名列表直接调用:
x = R17(R17.variable_names()[0])
原理很直接:当初你用R17.<x> = PolynomialRing(GF(17))定义环时,x只是绑定了环的生成元的一个变量名。当你给x赋值为25时,只是覆盖了这个变量的指向,而多项式环R17本身的生成元并没有消失——直接从环中重新获取生成元并赋值给x,就能让它回到原来的变量状态。
如果不想修改x的当前值,也可以直接用环的生成元来定义多项式,比如:
f2 = R17(R17.gen() + 15)
内容的提问来源于stack exchange,提问作者user93353
相关产品推荐
相关产品推荐

