cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 14598|回复: 17

【Benchmark】HP Prime模拟器八皇后测试

[复制链接]
发表于 2013-7-16 17:04:30 | 显示全部楼层 |阅读模式
本帖最后由 diameter 于 2013-7-16 17:59 编辑

根据C语言版本改写(看PRIME的语言其实应该用PASCAL的改写...)
成绩:0.018s比nspire cx的basic快。根据@Zentauit 提供的数据,cx成绩为7.2s
代码图是三张拼起来的
  1. main()
  2. {
  3.    int x,y,r,s,t,n,a[9];

  4.    for(n=1000;n>0;--n){
  5.      r=8;
  6.      s=0;
  7.      x=0;
  8.      do{
  9.        a[++x]=r;
  10.        do{
  11.          ++s;
  12.          y=x;
  13.          while(y>1)
  14.            if (!(t=a[x]-a[--y]) || x-y==abs(t)){
  15.              y=0;
  16.              while(!--a[x])
  17.                --x;
  18.            }
  19.        } while(y!=1);
  20.      } while(x!=r);
  21.    }
  22.    printf("%d",s);
  23. }

复制代码
未标题-5 拷贝.png

输出结果

未标题-1 拷贝.png
感谢朔雪的指正!我发现C版本的代码有问题...............外层那个循环1000次的完全可以去掉...循环1000次是为了算精确时间的,我忘记做除法了..
 楼主| 发表于 2013-7-16 17:06:15 | 显示全部楼层
本帖最后由 diameter 于 2013-7-16 17:18 编辑

你妹..用chrome的时候“您尚未填写标题或内容”把我踢回来四五次...换IE后好了
发表于 2013-7-16 17:27:56 来自手机 | 显示全部楼层
那hpmuseum上的0.4秒是怎么跑出来的……
有源码的 www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=700

点评

怎么跑出来分比0.4还要快啊..莫非他们拿的实体机  发表于 2013-7-16 18:03
怎么跑出来分比0.4还要快啊..莫非他们拿的实体机  发表于 2013-7-16 18:03
 楼主| 发表于 2013-7-16 17:30:41 | 显示全部楼层
朔雪X忆 发表于 2013-7-16 17:27
那hpmuseum上的0.4秒是怎么跑出来的……
有源码的 www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.c ...

这个什么情况...我再去试试
 楼主| 发表于 2013-7-16 17:40:36 | 显示全部楼层
本帖最后由 diameter 于 2013-7-16 17:52 编辑
朔雪X忆 发表于 2013-7-16 17:27
那hpmuseum上的0.4秒是怎么跑出来的……
有源码的 www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.c ...

果然我改的有问题,下面代码秒出了...
这个跟我改的除了没有外层的1000次循环几乎一样?什么情况?
  1. EXPORT NQUEENS()
  2. BEGIN
  3.    R:=8;
  4.    L1:=MAKELIST(0,X,1,R,1);
  5.    S:=0;
  6.    X:=0;
  7.    REPEAT
  8.      X:=X+1;
  9.      L1(X):=R;
  10.      REPEAT
  11.        S:=S+1;
  12.        Y:=X;
  13.        WHILE Y>1 DO
  14.          Y:=Y-1;
  15.          T:=L1(X)-L1(Y);
  16.          IF T==0 OR X-Y==ABS(T) THEN
  17.            Y:=0;
  18.            L1(X):=L1(X)-1;
  19.            WHILE L1(X)==0 DO
  20.              X:=X-1;
  21.              L1(X):=L1(X)-1;
  22.            END;
  23.          END;
  24.        END;
  25.      UNTIL Y==1 END;
  26.    UNTIL X==R END;
  27.    S;
  28. END;
复制代码
1L的代码有误,访问LIST应该用括号而不是中括号..
改完后也能很快出结果,但不是秒出
发表于 2013-7-16 20:01:10 | 显示全部楼层
Ti-Basic拿来测速不算数的……
发表于 2013-7-16 22:54:14 来自手机 | 显示全部楼层
0.018s VS 0.4s
果然模拟器还是无法反应真实速度啊……
发表于 2013-7-17 10:30:02 | 显示全部楼层
直径君,你电脑的CPU是啥啊(Atom?),为啥我的模拟器跑这个程序只要0.002s……
(电脑CPU:超低电压版Core2 1.6GHz)

点评

台式机=。=Athlon II X2  发表于 2013-7-17 12:00
发表于 2013-8-16 19:11:48 | 显示全部楼层
请问在prime上的程序有吗?我想用prime真机试试看,有图片就好了
发表于 2013-8-16 20:36:53 | 显示全部楼层
freedom 发表于 2013-8-16 19:11
请问在prime上的程序有吗?我想用prime真机试试看,有图片就好了

楼主位截图就是
发表于 2013-8-16 20:49:05 | 显示全部楼层
nbzwt 发表于 2013-8-16 20:36
楼主位截图就是

那是个什么原理啊。。。
发表于 2013-8-16 21:48:04 | 显示全部楼层
柠檬 发表于 2013-8-16 20:49
那是个什么原理啊。。。

没研究过啊
发表于 2013-8-16 22:29:35 | 显示全部楼层
nbzwt 发表于 2013-8-16 21:48
没研究过啊

我运行了一遍上述程序,运行一次用时19.44秒,这算快还是慢?。。。
发表于 2013-8-16 23:11:35 | 显示全部楼层
柠檬 发表于 2013-8-16 22:29
我运行了一遍上述程序,运行一次用时19.44秒,这算快还是慢?。。。

我花了21秒,应该还可以,这是1000次的结果。明天我打算发个贴
发表于 2013-8-17 10:36:35 | 显示全部楼层
freedom 发表于 2013-8-16 23:11
我花了21秒,应该还可以,这是1000次的结果。明天我打算发个贴

你搞懂这个程序是干嘛的吗?。。。
发表于 2013-8-17 11:06:24 | 显示全部楼层
柠檬 发表于 2013-8-17 10:36
你搞懂这个程序是干嘛的吗?。。。

计算八皇后放棋盘的所有可能性,以此测算计算器速度
发表于 2013-8-17 12:16:36 | 显示全部楼层
freedom 发表于 2013-8-17 11:06
计算八皇后放棋盘的所有可能性,以此测算计算器速度

不懂,明天携机去学校给我讲讲。。。
发表于 2013-8-17 12:25:14 | 显示全部楼层
柠檬 发表于 2013-8-17 12:16
不懂,明天携机去学校给我讲讲。。。

程序的原理我也不是很懂,研究一下吧。我只是了解了八皇后的基本原理
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-12-22 11:34 , Processed in 0.072678 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表