摘要:故事:5个海盗抢到了100颗宝石,每一颗都一样的大小和价值连城。他们决定这么分:1. 抽签决定自己的号码(1,2,3,4,5)2. 首先,由1号提出分配方案,然后大家5人进行表决,当且仅当超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。3. 如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅当超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。4. 以次类推条件: 每个海盗都是很聪明的人,都能很理智的判断得失,从而做出选择。问题:第一个海盗提出怎样的分配方案才能够使自己的收益最大化?分析1.只有4号和5号两个人,由4号来分配的话,不管4号怎么分,5
阅读全文
摘要:三人决斗问题(枪手博弈)题目是这样的:A、B、C三人进行决斗。A 的射击命中率是三分之一,也就是说如果他努力的话,他平均每三枪可以击中一次;B 的射击命中率是二分之一;C 的射击命中率是一(也就是百分之百)。由于 A 的命中率最低,为公平起见,他们让 A 先射,然后是 B(如果他还活着的话),然后是 C(如果他还活着的话)。再然后是 A,B,C,如此循环下去,直到只有一人活着。每次射击时只能开一枪,但可以选择朝哪里开,也可以选择放空枪。我们的问题是:如果ABC三人都按照最佳选择行事,也就是说尽可能的提高自己地存活率,谁活下来的可能性最大?准确一点,每个人活下来的概率是多少?根据题意,在第一轮射
阅读全文
摘要:看到了一个有趣的数学算法,以后碰到了口算就有用了。一、首同尾合十计算规律:两个数相乘必须满足条件:1、两个数都为两位数;2、他们的个位数字之和为十,即尾合十;3、他们的十位数上数字相同,即首同。满足上述条件的两个数相乘得到的结果:十位上的数字与比它大一的数相乘后,再在乘积后加写个位数字乘积即可。描述看起来不好理解,直接举例:48*42=(4*5)(8*2)=2016,可以去验证下结果是否正确。。哈,很简单吧。15*15=(1*2)(5*5)=225。。。。二、尾同首合十刚好与前一个相反,不说了,直接上例子,相信大家都会总结出规律的:13*93=(1*9+3)(3*3)=1209,结果正确。21
阅读全文
摘要:看了很多文章写红黑树的插入与删除,发现大部分都是从算法导论上抄下来或者加以补充,不易新手学习,无意中看到了维基上总结的红黑树,细看了下,还是觉得维基比较给力,代码简略易懂。特转做笔记收藏。。1、性质 红黑树是每个节点都带有颜色属性的二叉查找树,颜色或红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:性质1. 节点是红色或黑色。性质2. 根是黑色。性质3. 所有叶子都是黑色(叶子是NIL节点)。性质4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)性质5. 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节
阅读全文
摘要:http://student.zjzk.cn/course_ware/data_structure/web/paixu/paixu8.4.2.2.htm堆:(二叉)堆数据结构是一种数组对象。它可以被视为一棵完全二叉树,树中每个结点与数组中存放该结点值的那个元素对应。二叉堆有两种:最大堆和最小堆(小根堆)。最大堆:所有节点的子节点比其自身小的堆。最小堆:所有节点的子节点比其自身大的堆。堆排序:堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单在堆排序算法中,使用的是最大堆,最小堆通常在构造优先级队列时使用。1234567
阅读全文