算法设计
ggggqqqqihc
成就不高,玩心不小。
展开
-
从逆波兰表达式看栈的原理
3 32+ 5 3* -12 34 2- * 8 /乍一看上面两个式子很奇怪,是吗?它们就是这里所要讲到的一种表达式的记法——逆波兰表达式。现在,准备一个很窄的圆筒,筒是有底的,像一个细长的杯子,粗细刚好和一枚硬币相当。再做几个和硬币一样大的小圆纸片,在纸片上依次写上“3”“32”“+”“5”“3”“*”“-”,记住,每个纸片上要么只写一个数,要么只写一个运算符号,把它们按上面的顺序排原创 2004-10-13 21:33:00 · 1689 阅读 · 0 评论 -
用递推法解决简单博弈类问题
这个问题是在编程爱好者论坛上看到的,不过原题叙述得不太清楚。我将它改动了一下:有n个桃子,两只猴子一大一小。两只猴子轮流取走桃子,规定每只猴子每次只能取1~3个,且小猴先取。最后手中桃子数为偶数者为胜方。问题是给定一正整数n,小猴有没有必胜的策略。其实问题的解决方法十分简单。假设n很小,小到什么程度?先让它等于1试试吗,显示小猴不可能胜,因为它最少也要取走一个,同时也就结束了。n比较小的时原创 2007-02-26 16:39:00 · 908 阅读 · 0 评论 -
用Python解N皇后问题
看了一下午的《Python简明教程》,顺手写了个N皇后的程序玩玩儿。程序只用到了基本的功能。贴在这里记录一下。 def isOK(row,col): Is it possible that a queen is put at (row,col)? for i in range(1,row): if col==queen[i-1] or col-quee原创 2007-07-17 20:43:00 · 982 阅读 · 0 评论 -
数学游戏——蚂蚁的无尽之旅
现在进入神秘的蚂蚁世界……一个无限的方格棋盘,每个格子都是黑色。有一只蚂蚁按照一个非常简单的规则移动:如果它所在的位置为黑色,则把格子涂成白色,向左转90度,前进一格;若为白色,则将格子涂出黑色,向右转90度,前进一格。如此不停地走下去,蚂蚁会走向何方?下面这幅图是在我的计算机上模拟出来的结果。一开始是一幅非常混沌的图像。但突然地,蚂蚁像是产生了智能,开始建造一条公路!原创 2007-08-01 20:12:00 · 713 阅读 · 0 评论 -
Scheme数据结构——栈
作为一种函数语言,Scheme认为一个函数,只要参数和变换过程一样,每一次的结果也必然是相同的。就好比函数y=x+1,当x=1是,y的值为2,不管哪一天都是这个结果。但对于真实世界来说,很多事物都是处于变化中的。因此Scheme中引入了set!、set-car!、set-cdr!等操作。对于栈这样一种简单的数据结构,就必然要考虑变化。每次压入、弹出元素,都要改变栈。至于栈的表示,一个很自然的想原创 2007-08-03 13:34:00 · 1003 阅读 · 0 评论