我正在学习Prolog,我正在复习讲义,所有笔记都说:
给定有向图的以下定义:
path(X, Y) :- edge(X, Y).
path(X, Y) :- edge(X, Z), path(Z, Y).
Run Code Online (Sandbox Code Playgroud)
如果我们想让它成为一个无向图,edge(X, Y) :- edge(Y, X).单独定义
不起作用,我无法弄清楚为什么.如果Y到X有边,则X到Y有一条边.似乎对我有意义.
这些说明并没有真正说明原因,但它确实定义了正确的解决方案:
edge1(X, Y) :- edge(X, Y).
edge1(X, Y) :- edge(Y, X).
Run Code Online (Sandbox Code Playgroud)
我们已经拥有的东西.
谁能解释一下这个,请和谢谢?<3
我试图找到一种方法来演示不同的调度程序如何影响程序的运行时.到目前为止,我只在Linux上使用时间的功能,试图看到使用空操作,CFS和期限调度衡量的差异,但我没有任何运气.对于测试程序,我只写了一堆基本上循环和计算数字的C程序.
我想也许如果我开始一个进程计数到更高的数字,然后开始第二个进程,计数不高; 使用截止日期调度程序,第二个进程可以显着更快地完成,因为它是一个资源密集度较低的工作.但是,我没有看到调度程序之间存在任何差异.我想知道我对调度程序的理解是否有点缺陷?有没有更合适的程序类型我可以尝试制作一些这些概念?
任何人都可以给我一些提示,建议或类似的东西吗?