2016-11-27 10 views
0

プレミアムピザは正確に40オンスのトッピングで構成されています。総重量が40オンスに等しい限り、各トッピングの複数のエントリがあり得る。Prologメンバー述語の可能性の規則

Pepperoni   4 
Sausage    10 
Bacon    6 
Onion    5 
Mushroom   7 

例えば、ピザ、ペパロニの1つのトッピングを含有することができるソーセージの2つのトッピング、1ベーコンの をトッピング、およびタマネギの2つのトッピング:1*4 + 2*10 + 1*6 + 2*5 = 40(オンス)

ピザ7つのトッピングを含めることはできませんベーコンの:7 * 6 = 42 > 40Aピザはソーセージのわずか3トッピングを含めることはできません。3*10 = 30 < 40

各トッピングの多くはOUに(P, S, B, O, and Mは重量ですピザ、上 を収容することができる方法を見つけるために、ルールを定義しますpizza(P, S, B, O, M) nces)、ペッパーソニ、ソーセージ、 ベーコン、タマネギ、キノコのトッピング。

pizza(P,S,B,O,M):- 
member(P,[0,1,2,3,4,5,6,7,8,9,10]), 
member(S,[0,1,2,3,4]), 
member(B,[0,1,2,3,4,5,6]), 
member(O,[0,1,2,3,4,5,6,7,8]), 
member(M,[0,1,2,3,4,5]), 
S is 4*P + 10*S + 6*B + 5*O + 7*M, 
S =:= 40. 

私は以下のルールを定義しましたが、トッピングの可能な組み合わせの代わりにfalseを返します。

答えて

0

ソーセージの重量とピザ全体の重量の両方にSを使用しています。

+0

私は気が気になりません。ありがとう –