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).
回答
它沒有問題。距離http://eclipseclp.org/examples/xkcd287.ecl.txt的例子,如果你沒有忽略它加載interval constraint solver行
:- lib(ic).
,它會工作在ECLiPSe Prolog的就好了。
(參見http://xkcd.com/287/)--- ...和'lib(ic)'是什麼,整數約束庫? –
'lib(ic)'代表區間限制。它實現了對整數和實數的約束(表示爲浮點間隔)。我會修改我的答案。 – jschimpf
感謝您的澄清! –
是否也SWI-Prolog的工作:
?- use_module(library(clpfd)).
?- [user].
solve(Amounts) :-
Total = 1505,
Prices = [215,275,335,355,420,580],
length(Prices, N),
length(Amounts, N),
min_list(Prices, MinPrice),
MaxAmount is Total//MinPrice,
Amounts ins 0..MaxAmount,
scalar_product(Prices, Amounts, #=, Total),
label(Amounts).
^D
?- solve(X).
X = [1, 0, 0, 2, 0, 1] ;
X = [7, 0, 0, 0, 0, 0].
但我想它不是一個優化搜索問題,
目標函數丟失。
再見
- 1. 如何解決這個優化問題?
- 2. 什麼是std :: find這個錯誤的優雅解決方案?
- 3. 這種問題的解決方案是什麼?
- 4. 這個提議的Vanity-URL解決方案路由器有什麼問題?
- 5. 驗證NP-hard優化問題解決方案的複雜性?
- 6. 我的解決方案有什麼問題?
- 7. 我的解決方案有什麼問題 - SPOJ - ALTSEQ?
- 8. 我的解決方案SPOJ ACTIV有什麼問題?
- 9. 爲什麼Prolog/clpq不能解決這個二次方程?
- 10. Codility挑戰 - 爲什麼這個解決方案有效?
- 11. c#解決方案的構建優化
- 12. 如何優化我的解決方案?
- 13. 優化解決方案三薩姆
- 14. 該解決方案可以優化嗎?
- 15. 這種模式有什麼優雅的解決方案?多級搜索
- 16. 區塊鏈?有什麼解決方案?
- 17. 解決方案有什麼不同
- 18. 什麼是名稱空間vs classname衝突問題的優雅解決方案?
- 19. 這個方案有錯誤記錄有什麼問題嗎?
- 20. 如何最優化地解決這個問題?
- 21. 解決這個範圍問題的最好方法是什麼?
- 22. 優雅的解決方案?
- 23. Prolog的多米諾解決方案
- 24. 沒有javascript的優雅解決方案
- 25. 尋找這個小調度問題的數學解決方案
- 26. 更多類似ruby的解決方案來解決這個問題?
- 27. 該方案中的這個define-syntax宏有什麼問題?
- 28. 這個鎖定方案有什麼問題
- 29. 試圖瞭解這個解決方案
- 30. 爲什麼我的3n + 1問題解決方案錯誤?
這不是SWI-Prolog。大概是[tag:eclipse-prolog] – false
爲什麼你說它有什麼問題? – lurker