【发布时间】:2013-05-23 18:03:57
【问题描述】:
我需要有关 Prolog 练习的帮助:
% items
items (cell).
items (labial).
items (control).
items (mirror).
% Weight of each item
weight (cell 2).
weight (labial, 3).
weight (control, 5).
weight (mirror, 10).
capacity (X, Y, Z, V) :-
weight (X C1), weight (Y, C2), weight (Z, C3), sum (C1, C2, C3, R), V> = R.
sum (X, Y, Z, K) :- K is X + Y + Z.
这个程序的作用是给我一个给定重量的 3 件或更少的组合,例如容量 (X, Y, Z, 15)。
结果是,X:细胞,Y:口红,Z:镜子,X:对照,Y:细胞,Z:镜子。依次与所有组合,其中 3 个权重的总和没有更高的输入。
目前我受到手动收入变量数量的限制,容量(X,Y,Z,N........)我想要关于项目数量的组合知识库,不用手动输入变量。我该怎么做?
理想的容量(重量)和响应也是如此。
重量不超过的物品组合
电话、口红、镜子。 控制唇电话。 镜像,控制,唇形.......
对不起,我不会说英语,我正在使用谷歌翻译。
【问题讨论】:
-
你能把标题改成有意义的吗?
-
如果您尝试过,请向我们展示您的尝试。现在听起来像是“请你们帮我做功课”。
-
批发用新问题替换原始问题。优雅。
-
是同一个问题,但有不同的例子,并解释了更多的标题。
-
我们之前完全理解,我们只是想看看你自己走了多远。指出一些错误并不是作弊,而是一个完整的从头开始的解决方案,而且它也需要更多的工作。正如 Renan 所指出的,我们不是来为人们做功课的。您还刚刚放弃了 Diego Sevilla 的工作,将您笨拙的散文变成了易于理解的东西。现在有人将不得不对您的新问题再次执行此操作。这不是交朋友的好方法。
标签: prolog declarative