
算法
papiping
这个作者很懒,什么都没留下…
展开
-
三色旗
三色旗的问题最早由E.W.Dijkstra所提出,他所使用的用语为Dutch Nation Flag(Dijkstra为荷兰人),而多数的作者则使用Three-Color Flag来称之。假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少,注意您只能在绳子上进行这个动作,而且一次只能调换两原创 2011-11-30 14:40:22 · 2867 阅读 · 0 评论 -
八皇后乃至N皇后问题
西洋棋中的皇后可以直线前进,吃掉遇到的所有棋子,如果棋盘上有八个皇后,则这八个皇后如何相安无事的放置在棋盘上,1970年与1971年, E.W.Dijkstra与N.Wirth曾经用这个问题来讲解程式设计之技巧。解决思路:1维数组szResult[i]依次表示第i行对应的皇后的所在的列。采用遍历方式第i行皇后所在的列从0到N 分别判断 此时是否出现重复现象,如果重复则无原创 2011-11-30 16:31:53 · 939 阅读 · 0 评论 -
八枚银币
说明现有八枚银币a b c d e f g h,已知其中一枚是假币,其重量不同于真币,但不知是较轻或较重,如何使用天平以最少的比较次数,决定出哪枚是假币,并得知假币比真币较轻或较重。解法单就求假币的问题是不难,但问题限制使用最少的比较次数,所以我们不能以单纯的回圈比较来求解,我们可以使用决策树(decision tree),使用分析与树状图来协助求解。一个简单的状况是这样的,我们比原创 2011-11-30 16:41:14 · 1140 阅读 · 0 评论 -
蒙地卡罗法求PI
解法蒙地卡罗的解法适用于与面积有关的题目,例如求PI值或椭圆面积,这边介绍如何求PI值;假设有一个圆半径为1,所以圆面积就为PI,而包括此四分之一圆的正方形面积就为1,如下图所示:如果随意的在正方形中投射飞标(点)好了,则这些飞标(点)有些会落于四分之一圆内,假设所投射的飞标(点)有n点,在圆内的飞标(点)有c点,则依比例来算,就会得到上图中最后的公式。至于如何判断所产生的原创 2011-12-01 10:12:51 · 1127 阅读 · 0 评论 -
关于查找排序的一点总结
最近在项目中,写协议栈的时候,需要引入消息重发机制,所以使用了资源池+队列的方式管理需要重发的消息,消息重发按照 每隔1s 2s 4s....的方式进行,每次取队列的第一个判断需要重发的时间,并等待一段时间(不超过 最短重发时间,因为可能会有新的消息加入队列),重发完毕后,将消息的下次重发时间 刷新并插入队列中(采用 折半查找的方式),经测试,当消息数量在8W条时,插入一条数据 大约需要50us,原创 2011-12-08 09:04:26 · 397 阅读 · 0 评论 -
俄罗斯方块
#pragma once/******************************************************************************** name : * description: 点,代表一个小方块* input : * output : * return : void* rema原创 2011-12-19 17:53:33 · 344 阅读 · 4 评论