任何Prolog专家帮我编写优化代码? 我写了这个,但我认为它包含错误 例如,如果我在一家餐馆,我想购买一个15.0美元的开胃菜和主菜,可以说我们在开胃菜:菜1费用5美元,菜2费用6美元,而在主菜:菜一费12美元,菜2费9美元。应该实施代码,从开胃菜中选择一道菜,从主菜中选择一道菜,它们的价格与我想要的预算相等,即15美元。
这是一个示例代码。任何助手
solve(Amounts) :-
Total = 1505,
Prices = [215, 275, 335, 355, 420, 580],
length(Prices, N),
length(Amounts, N),
Amounts :: 0..Total//min(Prices),
Amounts * Prices #= Total,
labeling(Amounts).