小编Hap*_*tal的帖子

Prolog程序以任何顺序查找两个列表的相等性

我想编写一个Prolog程序来查找两个列表的相等性,其中元素的顺序
无关紧要.所以我写了以下内容:

del(_, [], []) .
del(X, [X|T], T).  
del(X, [H|T], [H|T1]) :-
   X \= H,
   del(X, T, T1).

member(X, [X|_]).  
member(X, [_|T]) :- 
   member(X, T).

equal([], []).  
equal([X], [X]).  
equal([H1|T], L2) :-
   member(H1, L2),
   del(H1, L2, L3),
   equal(T, L3).  
Run Code Online (Sandbox Code Playgroud)

但是当我提供输入时equal([1,2,3],X).,它并没有显示所有可能的值X.相反,程序挂在中间.可能是什么原因?

list prolog any failure-slice

8
推荐指数
1
解决办法
1万
查看次数

回应换行抑制

为什么不在终端上$echo '-n'-n,虽然-n是用单引号写的?

bash scripting newline echo

7
推荐指数
1
解决办法
2万
查看次数

C和C++中的函数声明

我有两个C++文件,比如file1.cpp和file2.cpp as

//file1.cpp  
#include<cstdio>  
void fun(int i)  
{  
   printf("%d\n",i);  
}

//file2.cpp
void fun(double);
int main()
{
   fun(5);
}  
Run Code Online (Sandbox Code Playgroud)

当我编译它们并将它们作为c ++文件链接时,我收到错误"undefined reference to fun(double)".
但当我这样做C文件时,我没有得到错误,而是打印0而不是5.
请解释原因.
此外,我想问一下在定义函数之前是否需要声明一个函数,因为
我没有在file1.cpp中声明它,但编译时没有错误.

c++ declaration function

7
推荐指数
2
解决办法
3152
查看次数

如何声明printf()?

我想在C中使用printf()函数打印一些东西,而不包括stdio.h,所以我编写了程序:

int printf(char *, ...);
int main(void)
{
        printf("hello world\n");
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

以上程序是否正确?

c printf

7
推荐指数
2
解决办法
1万
查看次数

将临时对象传递给带指针的函数

我试过以下代码:

#include<iostream> 
#include<string>
using namespace std;

string f1(string s)
{
   return s="f1 called";
}

void f2(string *s)
{
   cout<<*s<<endl;
}

int main()
{
   string str;
   f2(&f1(str));
}
Run Code Online (Sandbox Code Playgroud)

但是这段代码没有编译.
我的想法是:f1按值返回所以它创建临时,我正在接收地址并传递给f2.
现在请解释一下我在想错的地方?

c++ function temporary

6
推荐指数
2
解决办法
6370
查看次数

证明语言是正常的

Pumping Lemma用于证明语言不规律.但是如何
证明一种语言是规则的?特别是,

Let L be a language. Define half(L) to be  
{ x | for some y such that |x| = |y|, xy is in L}.  
Prove for each regular L that half(L) is regular.  
Run Code Online (Sandbox Code Playgroud)

是否有任何技巧或一般程序来解决这类问题?

regular-language

6
推荐指数
2
解决办法
7529
查看次数

在c ++中初始化对象

我想知道,在c ++中,对象的初始化何时发生?
是在编译时还是链接时?
例如:

//file1.cpp
extern int i;
int j=5;

//file2.cpp ( link with file1.cpp)
extern j;
int i=10;  
Run Code Online (Sandbox Code Playgroud)

现在,编译器做了什么:根据我的说法,它为变量分配存储空间.
现在我想知道:
它是否也将初始化值放在该存储中,还是在链接时完成?

c++ initialization object

5
推荐指数
1
解决办法
566
查看次数

是什么让NP难问题不是NP完全问题?

我对NP难问题感到困惑.
NP中存在一些NP难题,称为NP-Complete,有些不在NP中.
例如:暂停问题只是NP难,而不是NP完全.
但为什么它不是NP完全?我的意思是,问题必须具备哪些属性才能成为
"NP难但不是NP完全问题"?

theory complexity-theory computer-science np

5
推荐指数
1
解决办法
1222
查看次数

如何生成所有可能的组合n位字符串?

给定正整数n,我想在matlab中生成所有可能的n位组合.
例如:如果n = 3,那么答案应该是

000
001
010
011
100
101
110
111
Run Code Online (Sandbox Code Playgroud)

我该怎么做 ?我想将它们存储在矩阵中.我试过了

for n=1:2^4 
r(n)=dec2bin(n,5); 
end; 
Run Code Online (Sandbox Code Playgroud)

但是这给出了错误"在赋值A(:) = B中,A和B中的元素数必须相同.

matlab bit-manipulation

5
推荐指数
1
解决办法
1万
查看次数

C中的条件运算符和赋值运算符

http://groups.google.co.in/group/comp.lang.c/browse_thread/thread/bfb312ad902d94eb/74dcdcacce777679?lnk=gst&q=conditional+operator#74dcdcacce777679

对于为什么
(A%2 == 0)的答案给出答案?A = 0:A = 1给出错误.

我不明白我们何时使用(优先级和关联性)并
使用C语法来解析表达式?

c conditional operator-keyword

4
推荐指数
1
解决办法
712
查看次数