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:方案