bobpxp 发表于 2015-4-22 12:57:58

八皇后: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]
查看完整版本: 八皇后:python,ruby,C,go对比