八皇后:python,ruby,C,go对比
网络上python和ruby之间的口水战从来都没有停止过。有人说python慢,有人说ruby更慢;有人说python美,有人说ruby更美。究竟怎样呢?我们不搞大而全的测评,就从简单的N皇后问题求方法数的暴力搜索程序中窥探一下吧:
下面是代码:
1 N=13
2 col=*N
3 d1=*(N*2)
4 d2=*(N*2)
5 ret=0
6 def dfs(x):
7 global ret
8 if x==N:
9 ret+=1
10 else:
11 for i in xrange(N):
12 if col==0 and d1==0 and d2==0:
13 col,d1,d2=1,1,1
14 dfs(x+1)
15 col,d1,d2=0,0,0
16 dfs(0)
17 print ret
根据python代码,我改编了各个语言的版本:
ruby
1 N=13
2 $col=*N
3 $d1=*(N*2)
4 $d2=*(N*2)
5 $ret=0
6 def dfs(x)
7 if x==N
8 $ret+=1
9 else
10 N.times do |i|
11 if $col==0 and $d1==0 and $d2==0
12 $col=$d1=$d2=1
13 dfs x+1
14 $col=$d1=$d2=0
15 end
16 end
17 end
18 end
19 dfs 0
20 puts $ret
C(C++)
1 #include
2 using namespace std;
3 const int N=13;
4 int col,d1,d2;
5 int ret=0;
6 void dfs(int x){
7 if (x==N)
8 ret++;
9 else{
10 for (int i=0;i
页:
[1]