Python チュートリアル3 では、And演算の記述方法について見てみます。3つの方法で、And演算を行っていますが、全く同じ制約です。And演算なので、全ての要素(2日,9日,15日,23日,30日)が公休である、という制約になります。
import sc3
for person in 全スタッフ:
vlist=[]
s='言語公休回数'+' '+staffdef[person]+'\n'
counter=0
for day in 月:
v=sc3.GetShiftVar(person,day,'公休')
vlist.append(v)
if counter==0:
vand=v
else:
vand=vand & v
counter+=1
sc3.AddHard(vand,s)#互いに等価な制約
sc3.AddHard(sc3.And(vlist),s)#互いに等価な制約
sc3.AddHard(vlist[0] & vlist[1] & vlist[2] & vlist[3] & vlist[4],s)#互いに等価な制約