算法
非完美主义者
这个作者很懒,什么都没留下…
展开
-
巧填算符
小朋友3年级的数学题:1 2 3 4 5 每个数字之间填上符号,使最后计算结果等于20。要找到一个答案就很容易,但小朋友要比试谁找到的答案多,这就有意思了。干脆写个程序来穷举所有的例子。这种问题,第一个就要想到使用栈,因为数字排列是有顺序的。按1,2,3,4,5的顺序依次push到栈中,每次push一个新数字进去的时候,可以有五个选择:1、什么都不做2-5、pop两个数字,分别做加、减、乘、除,然后把结果push进栈因此尝试每种选择,进行递推的处理。每试过一种选择之后,都要把现场还原——把放原创 2021-03-09 14:39:50 · 457 阅读 · 0 评论 -
第N个丑数生成算法
丑数:1和只可以被2、3、5整除的数。要求输入N,能够找出第N个丑数。 第一个想法是从2开始,对每个数检查是不是只可以被2、3、5整除,可以的话,就记录下一个丑数,直到找到第N个丑数为止。这个方法实现起来比较简单,但若N很大,则可能需要对数倍甚至数十倍于N的数进行计算,且数越大,需要做的除法就越多,效率就低了。 那么倒过来,不判断现成的数是不是丑数,而从小到大生成丑数,这样是不原创 2012-12-20 22:15:52 · 1390 阅读 · 0 评论 -
生成蜂窝网络图
有蜂窝网络如图,从1开始,按顺时针方向编号。要求给一个蜂窝数目N,得到整个蜂窝网络的图。设每个节点周边的六个方向,按顺时针为 d1~d6。思路就是根据当前的一个节点,要发展出下一个节点,那么下一个节点在当前节点的哪个方向上?经过分析,有如下3个规则:规则1:以当前节点base为基础,按d1~d6方向发展新的节点。比如以1为基础,顺时针发展出2、3、4、5、6、7在节点1的d6方向上原创 2012-12-22 21:15:27 · 2783 阅读 · 0 评论 -
用递归和穷举法实现的循环赛赛程生成算法
用递归+穷举实现循环赛赛程生成。原创 2015-10-17 20:30:45 · 3184 阅读 · 1 评论