2013年2月27日

吴昊品游戏核心算法(新年特别篇) —— 跳格子游戏(DFS+DP)(HDOJ 1978)

摘要: “跳格子游戏”应该包括一大类游戏的,现在给出的一种应该算是“实心”的跳格子游戏吧,也就是你可以选择向左走或者向右走,每次走了之后都会触发一系列事 件(这样的游戏有很多,比较简单的一种就是每走到一个格子上面就可以获得一部分积分,在走到终点的时候,需要将获得的积分尽量扩大),你需要选择一种最优 的策略,来让自己获得的利益最大。另外一种属于“空心”的跳格子游戏,类似于“大富翁”,“飞行棋”等等,需要几个人轮流投掷色子,在一个空心的圆环上面 跳格子,地图上的每个格子都会触发一个类似的事件,以此来进行游戏——如图所示的大富翁全地图。我们先看“实心”的跳格子,后面再来看“空心”的跳格子。 (如图所示,此乃 阅读全文

posted @ 2013-02-27 23:01 吴昊系列 阅读(677) 评论(0) 推荐(0)

吴昊品游戏核心算法(新年特别篇)—— m堆级别的取石子游戏(尼姆博弈)(HDOJ 2176)

摘要: 好啦,我这里再摆出一堆石子,不过,这次的问题规模由2堆变成了m堆,方法也会换去,但是“必胜点”和“必败点”的思想还是可以保留住的。这里,每次可以在其中一堆取任意数目的石子,就是不能不取。当然,还是本人先走。 尼姆博弈基本思想: 两人从n堆物品中取任意个,先取完者胜。 即将n堆物品的数量异或,得到的值如果为0,则先手败,反之先手胜。 如果要求先手在胜的条件下,到奇异局势的方法数,则判断异或的值与每一堆原值异或后(结果应该表示该堆没有参加异或时的异或值)与原值比较大小, 如果小于,则方法数加一。且对应的方法后,该堆的数目应变为异或的值与每一堆原值异或的值。 尼姆博弈的原理: 定 义P-positi 阅读全文

posted @ 2013-02-27 23:00 吴昊系列 阅读(330) 评论(0) 推荐(0)

吴昊品游戏核心算法(新年特别篇)—— 2堆级别的取石子游戏(威佐夫博弈)(HDOJ 1527)

摘要: 如图所示,有一些石子,我们在这里将其分为两堆,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。 首先,给出本人先取(先取者,在很多情况下,都有迎来胜利曙光的契机,比如拿破仑,他即使在最后的最后,也是选择首先出击的,这乃是最勇敢的策略,也是最 明智的策略!当然,先走未必都是好的,在以后的例子中可以看到)的条件,输入为两堆石子的数目(这里用int类型是可以装入的). 阅读全文

posted @ 2013-02-27 22:56 吴昊系列 阅读(163) 评论(0) 推荐(0)

吴昊品游戏核心算法(新年特别篇)—— 1堆级别的取石子游戏(巴什博弈)

摘要: 吴昊继续,继续摆石子,继续说博弈。之前有说过两种博弈了,这次给出巴什博弈。 巴什博弈是什么? 只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 用游戏语言表述如下: 1、本游戏是一个二人游戏; 2、有一堆石子一共有n个; 3、两人轮流进行; 4、每走一步可以取走1…m个石子; 5、最先取光石子的一方为胜; 巴什博弈的奥义 显 然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜.因此我们发现了如何取胜的法 则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物 阅读全文

posted @ 2013-02-27 22:55 吴昊系列 阅读(317) 评论(0) 推荐(0)

吴昊品游戏核心算法(新春特别篇)—— 吴昊教你玩泡泡龙(模拟)(HDOJ 1547)

摘要: 泡泡龙(パズルボブル,Puzzle Bobble,Bust-a-Move),TAITO在1994年首次发布,是一个十分流行的弹珠游戏。从下方中央的弹珠发射台射出彩珠,多于3个同色珠相连则会消失。也支持双人游戏,不过此模式下,两个玩家互相竞争:一个消除大片泡泡会转移到对方阵地。 (Source:HDOJ 1547)这里有如下两个假设,一个假设是关于泡泡的消除的解释,另一个假设有些BT,我们假设所有的残局都在于游戏界面的左上角,也就是说,射击的时候(假设为直线射击,并且包括反弹,是可以击中所有的外表面层的泡泡) 泡泡消除的方式: 主要有爆掉和下坠两种方式,前者是后者的基础。 (a) 泡泡爆掉 当. 阅读全文

posted @ 2013-02-27 22:54 吴昊系列 阅读(1107) 评论(0) 推荐(0)

人工智能(AI)简介

摘要: 人工智能(AI)是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机 器学习,计算机视觉等等,总的说来,人工智能的目的就是让计算机这台机器能够象人一样思考。这可是不是一个容易的事情。如果希望做出一台能够思考的机器, 那就必须知道什么是思考,更进一步讲就是什么是智慧,它的表现是什么,你可以说科学家有智慧,可你决不会说一个路人什么也不会,没有知识,你同样不敢说一 个孩子没有智慧,可对于机器你就不敢说它有智慧了吧,那么智慧是如何分辨的呢?我们说的话,我们做的事情,我们的想法如同泉水一样从大脑中流出,如此自 然,可是机器能够吗 阅读全文

posted @ 2013-02-27 22:48 吴昊系列 阅读(2559) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 10 (第一季完结篇) —— 终极推理 —— L与夜神月的对话

摘要: L夜神月之间有过许多的“对话对决”,不外乎这样的一些逻辑,比如你问路上其中一个机器人——“如果我问另外一个机器人如何通往幸福的道路,它会怎么回 答?”(罗素悖论),这种(+1)*(-1)=(-1)的逻辑问话经常可以问倒很多人,但是,我认为《死亡笔记》中L与夜神月的对决最精彩的一个还是以下 的对话: [ 引自射手网]Dialogue: 0,0:04:24.63,0:04:27.62,*Default,NTP,0000,0000,0000,,{\fad(500,0)}夜神,抱歉又要旧事重提了 Dialogue:0,0:04:28.80,0:04:31.09,*Default,NTP,0000,00 阅读全文

posted @ 2013-02-27 22:46 吴昊系列 阅读(479) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 9 —— 0/0之哲学意义

摘要: 0/0(称之为不定式,可以等于任何数。)在数学上没有定义。在物理上这是有一定的解释的。比如说电阻定义 R=,当电压和电流都为0时R的值不确定。例如,若考虑极限且有f(c)=g(c)=0。若 f(x)等于g(x),极限为一;若f(x)等于g(x)的两倍,则极限为二。更一般地,0/0型的极限可以通过洛必达法则求得。0/0与导数的区别(出自导数的哲学意义)应 该说无穷小量,起源于微积分学。例如,我们研究二次函数y=x^2的变化率。首先,我们考察y=x^2这一法则下 在某一点p(x0,y0)的Δy/Δx。 Δy/Δx=[(x0+△x)^2-x0^2]/△x =[x0^2+2x0△x+△x^2-x0^2 阅读全文

posted @ 2013-02-27 22:45 吴昊系列 阅读(313) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 8 —— 计算几何一系列(C)—— 圆上知道一点求另外两点组成一个周长最长的三角形(HDOJ 1700)

摘要: Source: HDOJ 1700【数学证明】 设R是圆半径,A,B,C是三角形的角,由正弦定理得a/sinA =b/sinB=c/sinC=2R 故a+b+c=2R(sinA+sinB+sinC),当R确定求周长a+b+c最大,归结为求sinA+sinB+sinC的最大. 设Y=sinA+sinB+sinC,先固定角A, Y=sinA+sinB+sinC=sinA+2sin((B+C)/2)cos((B-C)/2) =sinA+2cos(A/2)cos((B-C)/2) 因为A是定值,故只有B=C时,Y才有最大值,同理分别再固定角B,C,则当C=A,A=B时, Y才有最大值,故A=B=C=6 阅读全文

posted @ 2013-02-27 22:43 吴昊系列 阅读(349) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 7 —— 推理逻辑中的传递闭包(HDOJ 1704)

摘要: 如图所示,此为哲学家亚里士多德,以下给出他的三段论——三段论 (syllogism)是传统逻辑中的一类主要推理。又称直言三段论。古希腊哲学家亚里士多德首先提出了关于三段论的系统理论。形式逻辑间接推理的基本形式之一,由大前提和小前提推出结论。如‘凡金属都能导电’(大前提),‘铜是金属’(小前提),‘所以铜能导电’(结论)。这称为三段论法或三段论式。三段论属于一种演绎逻辑,是不同于归纳逻辑的,具有较强的说服力。 当然,三段论的使用是有一定条件的,比如,就两场比赛而言,A赢了B,B赢了C,不能由此得到A赢了C,毕竟,A和C之间还没有比过。但是,在数字之间是可以进行这样的比较的没有错。比如,A比B多3 阅读全文

posted @ 2013-02-27 22:41 吴昊系列 阅读(190) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 8 —— 计算几何一系列(B)(HDOJ 1705)

摘要: (Source:HDOJ 1705)如下,就是一个Grid(方格),有一个封闭的多边形(多边形是规则的),有些点在多边形内,有些在边的表面上,而有些则在多边形的外侧。利用那一个个正方形网格,可以计算出多边形所围住的区域的总面积。 何谓皮克定理? 如果取一个格点做原点O,取通过这个格点的横向和纵向两直线分别做横坐标轴OX和纵坐标轴OY,并取原来方格边长做单位长,建立一个坐标系。这时前面所说的格点,显然就是纵横两坐标都是整数的那些点。如图1中的O、P、Q、M、N都是格点。由于这个缘故,我们又叫格点为整点。 一个多边形的顶点如果全是格点,这多边形就叫做格点多边形。有趣的是,这种格点多边形的面积计算起 阅读全文

posted @ 2013-02-27 22:40 吴昊系列 阅读(259) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 8 —— 计算几何一系列(A)—— 将椭圆切两刀(HDOJ 1724)

摘要: (Source:HDU1724)如图所示,以上,将这个椭圆切成三个部分,左一刀为L,右一刀为R,我们需要计算的是切开的一部分的面积。那么,对于这一块,利用三角换元当然是首选,因为,毕竟与图形有关系,步骤如下: (1)y = b√1-x^2/a^2,这里是每一个x对应的一个y (2)S =∫[l 到 r]{[b√(1-x^2/a^2)]}dx,其实,到了(2)这里还是有些复杂,需要改良一下 (3) 用三角换元:y=b*sinθ,x=a*cosθ (4)x=l 对应θ1,x=r 对应θ2,则变换为: (5)S =∫[θ1 到 θ2]{[bsinθ]}d(a*cosθ) = ∫[θ1 到θ2]{-a 阅读全文

posted @ 2013-02-27 22:39 吴昊系列 阅读(274) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 7 —— 三角形区域内细绳的膨胀(计算几何)(HDOJ 1451)

摘要: (Source:HDOJ 1451) 如图所示,这个三角形里面有一根细绳,假设这根细绳会往外膨胀,直到膨胀到不能再膨胀位置,我们需要计算的,就是细绳膨胀到不能再膨胀的时候,其包围的总面积(这里不考虑细绳会撑破整个三角形)。 那么,我们开始推理吧! 一刻推理:绳子在不断膨胀的过程中,不规则的部分会逐渐变规则,这乃是一个事实。那么,具体是怎么变化的呢?这个比较复杂,而且,缺少必要的条件,但是,我们需要管它吗?管它做甚??! 二刻推理:由 一刻推理的分析,我们可以得知,只需要管细绳的最终状态就可以了,而没有必要在中间过程中过多纠缠。那么,我们可以想象地到,最终的发展趋势具有如下四种 可能:(1)内部 阅读全文

posted @ 2013-02-27 22:34 吴昊系列 阅读(408) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 5 —— 战车问题(蒙特卡洛实战)

摘要: 如图所示,以上是一个N*N的方格,上面布满了堡垒和坦克。其中,堡垒用来防御而坦克用来攻击,这当然只是两种不同的行为而已。这里假设坦克是不能越过堡 垒的,同时假设堡垒过于强大,以至于坦克无法利用炮轰的方式将其炸毁。那么,我们假设战车各自为派(那么,可以想见,在没有任何的堡垒的情况下,方格上最 多有N辆战车),希望我们在初始阶段尽可能地放置更多的互相不受攻击的战车。这也是许多坦克游戏中的初始布局的基本要求,因为,如果一开始你就可以攻击到 对方,这样有失游戏的公平性。 这是一个坦克游戏的残局,在布局阶段,是不允许双方的坦克受到彼此之间的攻击的。 【分析】从第一行开始随机产生一个位置,看战车在该位置. 阅读全文

posted @ 2013-02-27 22:27 吴昊系列 阅读(385) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 3 —— “无论你多有天赋,你一个人也不可能改变世界(By L)”——让吴昊来向你解释为什么人类是高于计算机的存在而存在的存在物

摘要: 以上,我节选自——《L改变世界,最后的23天》,L说的一句话,非常之震撼,当然,这部电影也很精彩,我看过很多遍了,L的谦逊让我尤为感动,也不知道这是不是他与企图用Death Note改变世界的夜神月对决之后(电影版中L是获胜者)的感慨,毕竟,企图改变世界的人,必然要背上改变世界的觉悟! 在数学界,有一个定理虽然没有引发新一轮的数学危机,却着实震撼了全世界,这就是著名的哥德尔定理,这个定理让20世纪狂妄一时的数学变得更为谦虚,谨慎,也让我们真正懂得了一些哲理性质的东西,那就是,知道自己能做到的,是需要勇气的,而知道自己不能做到的,并大胆的接受,这不但是一种智慧,更是一种莫大的勇气! 我读过一本书 阅读全文

posted @ 2013-02-27 22:25 吴昊系列 阅读(230) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 5 —— 我不知道你不知道“哦!”我知道!你也知道了——让吴昊为你揭秘历史上配合最默契的两个人(M和N——源自死亡笔记)

摘要: 华中科技大学有一个著名的团队叫做联创,是培养IT狂人的摇篮,可惜,我到大四上学期方才醒悟,去联创宣讲会,发现,为时已晚,他们不招大一和大二的,悲 剧啊。不过,在笔试的时候有一个推理题我忘不了,应该说很经典吧,罗列如下:我们可以看到,即使是对方说“不知道”的时候,你不要灰心丧气!,当你连续得 知“对方不知道”而你又不知道的时候,你应该窃喜,你离开胜利不远了,你这个时候应该对他/她说“你也不知道”,这样传递的一个信息很有可能会让你成功地 探寻出事物的本源。为了进一步地阐明这一点,我举出两个例子: (图文无关,此为《L改变世界——最后的23天》中的女主角,当她发现L不能直着背的时候她笑了,恩,这一. 阅读全文

posted @ 2013-02-27 22:24 吴昊系列 阅读(376) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 4 —— 随机化乎?蒙特卡洛!

摘要: 这一个Round中,我只想阐述一点,在推理中,有些事情也不能完全确定 地来进行,在有必要的时候,必须引入一些随机的元素,这样虽然只能得到近似解,但是在时间效率上确实比确定解要高出许多。目前,这种思想已经成为了一种新 的方法,来解决一些NP难问题。因为,很多实际的问题是没有必要进行确定解的计算的。所以说,华科的院系领导对华科的老师进行审查的时候,也只会将命题人 员自己命的题目抽样出20%出来,观察其是否是各个参考资料上的原题目。 蒙特卡洛?神马东西?我们首先从地理上来理解,没有错,就是摩纳哥的赌城。这样,我们透过“赌博”这两个字推测到蒙特卡洛应该与随机化有关。那么,我们再 想想,恩,没有错,这就 阅读全文

posted @ 2013-02-27 22:22 吴昊系列 阅读(369) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 2 —— 蚂蚁爬杆问题

摘要: Problem:有一根27厘米长的细木杆,在第3厘米,7厘米,11厘米,17厘米,23厘米,这五个位置上各有一只蚂 蚁,木杆很细,不能同时通过两只蚂蚁,开始时,蚂蚁的头朝向左还是右是任意的,他们只会朝前走或掉头,但不会后退,当两只蚂蚁相遇后,蚂蚁会同时掉头朝反 方向走,假设蚂蚁们每秒钟可以走1厘米的距离。求所有蚂蚁都离开木杆的最小时间和最大时间。 一刻推理:首 先可以想到的一个方法,就是模拟算法,没有错,由于这些蚂蚁都有其相似的地方,故可以归为一个类,而有多少个蚂蚁,就有多少个对象。问题是,这样做,确实 是可以详细描述出这些蚂蚁活动的全过程,但是,问题要去的是,我们只需要求出所有蚂蚁离开木杆的 阅读全文

posted @ 2013-02-27 22:16 吴昊系列 阅读(538) 评论(0) 推荐(0)

和吴昊一起玩推理 Round 1 —— 我自己对推理的一些感悟

摘要: 在做吴昊品游戏核心算法系列的时候,我想到了一个事情,其实,一个复杂的游戏的算法,正如一个充满玄机而又有趣的数学理论证明题一样,其核心目的都是一样的,都是通向人类的思维极限。这让我想到了大学时期看过的一部构思严谨的动画,就是《死亡笔记》。没有错,在第一部中,L确实就差一点点,就可以发现夜神月的破绽了,而在第二部中,夜神月也只差一点点,就可以险些获胜。 在现实世界中,推理的目的性没有那么残酷,并不是你推理没有成功,你就要为此付出生命的代价,因为,如果你的正义感没有L那么强烈的话,如果你的决心,以及耐心没有L那么执着的话,你有可能中途就放弃了。 我想谈谈自己对推理的一些看法吧。和很多人一样,小时候喜 阅读全文

posted @ 2013-02-27 22:15 吴昊系列 阅读(221) 评论(0) 推荐(0)

吴昊品游戏核心算法 Round 7(特刊)—— (转载)猜数字系列 第二弹 AI(启发式算法VS直觉算法)

摘要: 小游戏“猜数字”及其拓展一、 题目背景 标准规则通常由两个人玩,一方出数字,一方猜。出数字的人要想好一个没有重复数字的4位数,不能让猜的人知道。猜的人就可以开始猜。每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。 如正确答案为 5234,而猜的人猜 5346,则是 1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为 2B,合起来就是 1A2B。 接着猜的人再根据出题者的几A几B继续猜,直到猜中(即 4A0B)为止。ﹰ 猜测次数限制猜数字游戏通常设有猜测次数的上限。根据计 阅读全文

posted @ 2013-02-27 22:07 吴昊系列 阅读(1450) 评论(0) 推荐(0)

导航