我需要测试一个 n-variable Boolean Function f = f(x0,...,xn-1)
。我需要修复 x0,然后运行一些测试g1 = f(x1,...,xn-1)
,然后修复 x1,依此类推。问题是我真的不明白如何用 Sage 做到这一点。
起初,我尝试创建一个值向量,用于控制变量的“固定”
R.<x0,x1,x2,x3> = BooleanPolynomialRing()
v = [None,1,None, 0]
if v[0] != None:
x0=v[0]
if v[1] != None:
x1=v[1]
if v[2] != None:
x2=v[2]
if v[3] != None:
x3=v[3]
f = BooleanFunction(x0+x3+x0*x1+x0*x1*x2)
print(f.algebraic_normal_form())
output:x0*x2
这工作正常,但它不适合我的任务,因为我希望能够自动化修复过程。我想if
用循环替换 " ",但在这种情况下,我不知道如何使用索引来处理循环内的变量。
我是 Sage 的新手,所以我将不胜感激任何建议!