Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Path: Prob.py
Views: 127
License: GPL3
Image: ubuntu2004
1
def Prob(myBP):
2
if type(myBP) == sage.rings.integer.Integer:
3
if myBP%2 == 0:
4
return QQ(0)
5
else:
6
return QQ(1)
7
BPR = myBP.parent()
8
mystr=str(myBP.variables()) #converting all uppers to lower and lowers to uppercase
9
newstr=""
10
for l in mystr:
11
if l.isupper():
12
newstr=newstr+"1" #gotta mark them as upper or lower
13
else:
14
newstr=newstr+"0"
15
NewGens=""
16
for ii in range(len(mystr)):
17
if newstr[ii] == "1":
18
NewGens=NewGens+mystr[ii].lower()
19
else:
20
NewGens=NewGens+mystr[ii].upper()
21
NewGens = NewGens[1:len(NewGens) - 1] #generators for probabilty polynomial assuming boolean generators are independent
22
if len(myBP.variables()) == 1:
23
NewGens = NewGens.replace(',','')
24
NewGens.replace(', ',',')
25
ProbRing = PolynomialRing(QQ,len(myBP.variables()),NewGens,order='invlex')#order=BPR.term_order())
26
ProbRing.inject_variables()
27
return ProbRecurse(myBP,BPR,ProbRing)
28