考验大家电脑的时候到了
| 我将上次发布汉诺塔的代码稍加修改, 加入了能够计算运算花费时间的功能, 正好也可以测试cpu的运算能力, 已经在vista 和linux两个平台下进行测试 |
2个平台分别是:
- linux平台: Pm 1.4Ghz 512MB suselinux 10.2
- vista平台: amd 64位双核 3800+ 2Ghz 2GB ddr, vista32bit
linux平台下, 移动5个盘花费1秒, 10个1秒, 15个3秒,20个43秒,25个1325秒,30个40675秒(整整11个小时)
vista平台下, 移动5个盘花费2秒, 10个4秒, 15个20秒,20个293秒。
当然,我都不是在纯文本环境下进行的测试。 所以误差还是有的。如果是纯文本环境,个个平台应该更快。vista如果是64位,也应该不止如此表现。
代码如下:
<br/>#include <iostream.h>//towers of hanoi<br/>using namespace std;<br/><br/>int main()<br/>{<br/> ///<br/> time_t before;<br/> time_t after;<br/> time (&before);;<br/> //<br/> void towers(int n, char t1, char t2, char t3);<br/> int n;<br/> cout << "enter the number of disks:";<br/> cin >> n;<br/> int number;<br/> number = n;<br/> towers(n, 'A', 'B', 'C');<br/> time (&after);<br/> cout << endl << "There are "<< number << " towers."; <br/> //<br/> cout << endl << before << " - > " << after ;<br/> cout << endl << "used " << after - before << " seconds";<br/>}<br/><br/>void towers(int n, char t1, char t2, char t3)<br/>{<br/> if(n < 1) cout << "no disks";<br/> else if(n == 1) cout <<"move top disk on tower " << t1 << " to tower " << t2 << endl;<br/> else<br/> {<br/> towers(n-1, t1, t3, t2);<br/> cout <<"move top disk on tower " << t1 << " to tower " << t2 << endl;<br/> towers(n-1, t3, t2, t1);<br/> }<br/>}<br/>
也可以下载我编译好的执行文件,不过执行文件只能运行在windows平台下,linux可以下载代码用g++编译。
[file]attachment/200709/1191069359_0.rar[/file]
Share on Facebook