2
A
回答
0
以下代碼計算給定序列中零和1的個數。你可以用它來應用你想要的任何條件。
sq(0, 0) --> [].
sq(Zeros, Ones) -->
[0],
sq(Z, Ones),
{Zeros is Z + 1}.
sq(Zeros, Ones) -->
[1],
sq(Zeros, O),
{Ones is O + 1}.
1
通過@Little鮑比表答案synthetizes(計數)的元素個數,和「外部」的DCG你需要測試結果
..., phrase(sq(Z,O), S), Z is O*3, ...
更簡單的方法可能是通過降不平衡
z3o1(B) --> [1], {S is B-3}, z3o1(S).
z3o1(B) --> [0], {S is B+1}, z3o1(S).
z3o1(0) --> []. % accept only if balanced
..., phrase(z3o1(0), S), ...
1
幾乎沒有......事實上,代碼是存在的,我們把它用!
:- use_module(library(clpfd)).
運行dd//1
與phrase/2
我們得到:
?- C#>= 3, phrase(dd(C), Xs).
C = 3, Xs = [0,0,0]
; C = 4, Xs = [0,0,0,0]
; C = 5, Xs = [0,0,0,0,0]
; C = 6, Xs = [0,0,0,0,0,0]
; C = 7, Xs = [0,0,0,0,0,0,0]
; C = 8, Xs = [0,0,0,0,0,0,0,0]
; C = 9, Xs = [0,0,0,0,0,0,0,0,0]
...
在哪裏含1
序列?我們知道,他們必須存在 ...
?- Xs = [0,0,0,1,0], C#>= 3, phrase(dd(C), Xs). Xs = [0,0,0,1,0], C = 3 ; false.
...但他們不出現在上面的回答順序:
?- C#>= 3, phrase(dd(C), Xs), Xs = [0,0,0,1,0]. **LOOPS**
要強制解集公平枚舉,我們可以使用目標length/2
像這樣:
?- C#>= 3, length (Xs, _), phrase(dd(C), Xs). C = 3, Xs = [0,0,0] ; C = 4, Xs = [0,0,0,0] ; C = 5, Xs = [0,0,0,0,0] ; C = 3, Xs = [0,0,0,0,1] ; C = 3, Xs = [0,0,0,1,0] ; C = 3, Xs = [0,0,1,0,0] ; C = 3, Xs = [0,1,0,0,0] ; C = 3, Xs = [1,0,0,0,0] ; C = 6, Xs = [0,0,0,0,0,0] ...
相關問題
- 1. 自動識別圖像中的圖案
- 2. 識別ios上的圖案
- 3. 面部圖案識別
- 4. php preg_replace不識別圖案
- 5. 識別圖像的圖案JPG或PNG
- 6. 在Python中識別點圖案
- 7. 在Java中識別圖像中的相似圖案
- 8. 使用AForge.net識別特殊圖案
- 9. ARToolKit Android無法識別新圖案
- 10. 識別圖像中的長不規則圖案
- 11. 如何識別一個圖像中的物體或圖案?
- 12. 方案中的身份識別功能
- 13. 通過data.frame中的組識別案例
- 14. 序言DCG圖請
- 15. 「識別」命令未識別的圖像
- 16. 圖片中的標識識別
- 17. XSD標識圖案
- 18. ActiveMQ不識別Stomp:傳輸方案無法識別:[stomp + ssl]
- 19. 讓應用識別「正確的答案」
- 20. 在iPhone屏幕上繪圖時識別圖案
- 21. Tensorflow的圖像識別教程給出相同的答案
- 22. 圖像識別
- 23. 識別圖像
- 24. 圖像識別
- 25. 圖像識別模式識別
- 26. 圖像識別(形狀識別)
- 27. OpenCV - 識別視頻幀上的規則圖案
- 28. 在PHP中識別圖片?
- 29. 在Python中識別圖像
- 30. TTStyledText,可識別沒有http://方案的URL:方案