摘要: 在《编程珠玑》里面看到个有意思的定理~经验法则。假设以年利率r%投资一笔钱y年, 金融版本的72法则指出, 如果r*y=72,那么你的投资差不多会翻倍。该近似相当准确,误差率不超过1%。72法则用户估算指数过程的增长非常便利。如果一个盘子里菌群以每小时3%的速率增长,那么其数量每天都会翻倍。由于2^10 = 1024,10次翻倍大约是1000倍,20次大约是100w倍,30次大约是10y倍。。。假设一个指数程序解决规模为n=40的问题需要10秒, 并且n每增加1运行的时间就增加12%。72法则告诉我们,n每增加6,运行时间就加倍。每增加60,运行时间就增加1000倍。附:维基:http://z 阅读全文
posted @ 2012-12-13 23:30 tsubasa_wp 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 从上往下求和, 求最大和的路径. 1 3 24 10 1分析: 从下向上求和附代码和运行结果:递推计算和递归求和, 它们都会把前一步的计算结果保存下来int n = 3;int a[4][4] = {1,0,0,0,3,2,0,0,1,10,1,0,4,3,2,20};int s[4][4];void d(int i, int j) { for ( int i = n; i >= 0; i-- ) for (int j = 0; j <=n; j++ ) s[i][j] = a[i][j] + (i == n ? 0 : (s... 阅读全文
posted @ 2012-12-13 19:20 tsubasa_wp 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 有一个2^k*2^k的方格棋盘, 恰有一个方格是黑色的, 其它为白色.用包含3个方格的L形牌覆盖所有白色方格.黑色方格不能被覆盖,且白色方格不能被两个或更多的牌覆盖.[分析] 由2^k*2^k很容易想到分治, 考虑用递归来解决.我的代码:#define SIZE 16char M[SIZE][SIZE];int P[2];char Color[4] = {'+','-','~','.'};/* + --- 0+ ++ + --- 1 + + --- 2+ + + + --- 3+ */bool containsPoint( int 阅读全文
posted @ 2012-12-13 12:57 tsubasa_wp 阅读(204) 评论(0) 推荐(0) 编辑