Java学习笔记34(集合框架八:综合案例:模拟斗地主的洗牌发牌)

开场白

AlphaGo两番赢下了人类围棋世界之实在王牌,世界第二底韩国好手李世石[\[1\]](https://www.jianshu.com/p/ca32e1e66a4b#fn1)

赛前,准确说是Google的DeepMind团队刚拓宽起信息说战胜了欧洲围棋冠军樊辉并打算挑战李世石的下,我个人是十分严谨地说马上会较量十分麻烦称,但实际上心里觉得AlphaGo的赢面更怪。只不过当时AlphaGo战胜的樊辉则是欧洲冠军,但全球排名都不入百,实在算不得是殊王牌。但AlphaGo的优势在于有一半年多底时空可不眠不休地学习提高,而且还有DeepMind的工程师也夫保驾护航,当时底AlphaGo也无是截然本,再添加我所查获的人类原来的夜郎自大,这些战内战外的因素了合在一起,虽然嘴上说这从难称,但内心是认定了AlphaGo会赢得。

结果,李世石赛前说比应该会5:0或者4:1若协调之使命就是是竭尽阻止那1之产出,但事实上的战况却是当今AlphaGo以2:0的比分暂时领先。且,如果不出意外的话语,最终的终究比分应该是AlphaGo胜出——只不过到底是5:0尚是4:1,这尚有待事态发展。

当时无异于幕不由地让人想起了当时的吴清源,将装有不屑他的对手一一斩落,最终敢让全世界先。

当然矣,当今世界棋坛第一人之柯洁对这个可能是休允许的,但于自家说,如果下半年AlphaGo挑战柯洁,或者柯洁主动挑战AlphaGo,那我还是坚定地当,AlphaGo可以摆平柯洁。

而,这里所而说的连无是上述这些时代背景。

机超越人类就是一个年华之题目,当然还有一个生人是不是愿意丢下脸面去确认的题目[\[2\]](https://www.jianshu.com/p/ca32e1e66a4b#fn2)

输赢不是非同小可,为什么会败怎么会赢,这才是必不可缺。


规则:

AlphaGo的算法

率先店家对弈中,李世石开局选择有人数都尚未走过的序幕,是以试探AlphaGo。而惨遭后盘又并发了家喻户晓的恶手,所以人们普遍可以看AlphaGo是捕捉到了李世石本身的关键失误,这才成功的恶化。

实质上李世石本人为是这般当的。

然至了亚小卖部,事情就了不同了。执黑的AlphaGo竟然给李世石看自己从来就是从不真正地霸占了优势,从而得以看是于同台制止在倒及了最后。

并且,无论是第一商厦还是亚铺面,AlphaGo都活动有了拥有事情棋手都赞不绝口的国手,或者是为具有工作棋手都皱眉不接的怪手。

很多下,明明以事棋手看来是勿应当走之落子,最后却还发挥了奇的图。就连赛前觉得AlphaGo必败的聂棋圣,都针对亚铺中AlphaGo的同等步五丝肩冲表示脱帽致敬。

业棋手出生之李喆连续写了点滴篇稿子来分析这点儿店家棋,在对棋局的剖析上本人本是休容许比较他再次专业的。我这边所思要说的凡,从AlphaGo背后之算法的角度来拘禁,机器的棋道究竟是什么吗?


AlphaGo的算法,可以分成四可怜块[\[3\]](https://www.jianshu.com/p/ca32e1e66a4b#fn3)

  1. 策网络
  2. 飞走子
  3. 估值网络
  4. 蒙特卡洛树寻

即四个部分有机结合在一起,就构成了AlphaGo的算法。

理所当然,这么说比较平淡,所以让我们由蒙特卡洛树开开一个简单易行的介绍。

当我们于娱乐一个玩耍之时光(当然,最好是围棋象棋这种消息通通透明公开都全没有不可知成分的玩乐),对于下同样步该怎么行动,最好之不二法门自然是用下同样步所有或的状态尚且列举出,然后分析敌方具备或的策略,再分析好抱有可能的报,直到最终比赛结束。这就是相当于是说,以本的规模为实,每一样破预判都进展定数量之分岔,构造出同样株完备的“决策树”——这里所谓的完备,是说每一样栽可能的前途之变还能够当这株决策树被于反映出,从而没有走来决策树之外的或是。

发了决策树,我们当然可以分析,哪些下同样步之作为是对友好有利的,哪些是指向自己伤害的,从而选择最为利于之那同样步来走。

也就是说,当我们所有完备的决策树的时,胜负基本已定下了,或者说什么样回应好战胜,基本就定下了。

重复绝一点之,梅策罗有长达定律便是,在上述这仿佛娱乐受,必然存在至少一漫漫这种必胜的方针[\[4\]](https://www.jianshu.com/p/ca32e1e66a4b#fn4)

用,原则及吧,在全知全能的上帝(当然是勿设有的)面前,你不管怎么下围棋(或者国际象棋、中国象棋、日本用棋),上帝都明白怎么走必胜,或者极端多尽多便是公运动的恰与上帝所预设的一律。

而是,上述完全的全称的到的决策树,虽然理论及对此围棋这样的娱乐来说是存在的,但实际我们鞭长莫及获得。

不仅仅是说咱人类无法获得,更是说咱俩的机也束手无策取——围棋最后之层面恐怕有3361种可能,这个数额超越了人类可观察宇宙中之原子总数。

之所以,现在底情况是:无论是人要么机器,都不得不掌握完全决策树的一律有些,而且是十分充分小之同等局部。

据此,上述神之棋路是我们人类同机具都没法儿控制的。

从而,人与机具便用了自然之手法来多决策树做简化,至少将该简化到自己能处理的程度。

于这历程遭到,一个尽当的法门(无论对机器要对人口来说),就是不过考虑少量层次之净展开,而以这些层次之后的决定进行则是无了的。

譬如说,第一步有100栽可能,我们都考虑。而这100种植或的落子之后,就见面产生次统的抉择,这里比如有99种可能,但我们并无还考虑,我们惟有考虑其中的9种。那么自然两重叠开展有9900种可能,现在我们便惟有考虑之中的900种植,计算量自然是极为减少。

这边,大方向人与机具是同等之,差别在到底哪筛选。

对机械来说,不完全的核定开展所动的是蒙特卡洛道——假定对子决策的即兴选取被好及死之分布和了展开的状态下的布是形似的,那么我们虽得用少量底人身自由取样来代表全采样的结果。

说白了就算是:我无挑几个或的裁定,然后最益分析。

此间当就是有十分充分的风向了:如果刚好有局部核定,是即兴过程并未当选的,那不纵蛋疼了呢?

当时点人之做法并不相同,因为人并无净是任意做出抉择。

此虽拉到了所谓的棋感或者大局观。

人们在落子的时候,并无是指向所有或的广大单选项中随机选一个出去试试未来底进步,而是使用棋形、定式、手筋等等通过对局或者上而得来的阅历,来判定发生什么样落子的主旋律更强,哪些位置的落子则着力可漠视。

故而,这虽起了AlphaGo与李世石对商厦被那些人类棋手很莫名的棋类着来了——按照人类的涉,从棋形、棋感、定式等等经历出发了不应去倒之落子,AlphaGo就动了出去。

以风只下蒙特卡洛树搜索的算法中,由于针对落子位置的选项以自由为主,所以棋力无法再做出提升。这等于是说机器是一个完全无学了围棋的总人口,完全依赖在强大的计算力来预测未来几百步之迈入,但马上几百步着的大部分还是轻易走来底不容许的棋局,没有实际的参考价值。

Facebook的DarkForest和DeepMind的AlphaGo所做的,就是以原用来图形图像分析的深卷积神经网络用到了针对性棋局的辨析及,然后拿分析结果用到了蒙特卡洛树搜索中。

这里,深度卷积神经网络(DCNN)的用意,是经过对棋局的图形图像分析,来分析棋局背后所伏的法则——用人的说话来说,就是棋形对全棋局的熏陶规律。

然后,将这些规律作用及对决策树的剪上,不再是了通过任意的法子来判定下一致步该朝着哪倒,而是用DCNN来分析这之棋形,从而分析这棋形中哪些位置的落子具有双重胜似之价,哪些位置的落子几乎毫无价值,从而将无价值之或是落子从决定树被减除,而针对如何有强价值之仲裁开展更加的解析。

立就当是以学来之棋形对棋局的熏陶规律下到了针对前景或者进化之挑三拣四策略备受,从而结成了一个“学习-实践”的正反馈。

于AlphaGo的算法来拘禁,这种学习经验的采用可以认为分为两有的。一个凡是估值网络,对整个棋局大势做分析;而其余一个凡便捷走子,对棋局的一些特征做出分析匹配。

因此,一个负担“大局观”,而其他一个负“局部判断”,这有限只最后还吃用来举行决定的剪裁,给有有足深和准确度的辨析。

和之相对的,人之核定时如何制定的也?


1.54张扑克牌,有档次

人类的欠缺

本人虽非是一把手,只是了解围棋规则与简单的几乎个定式,但人口的同大特征就是是,人之众多考虑方式是于生存的各个领域都通用的,一般不会见产出一个人当产围棋时用底笔触及干别的事时的笔触彻底不同这样的情状。

于是,我得以经过分析好与相别人在日常生活中之一言一行同怎样造成这种行为之故,来分析下棋的时候人类的普遍一般性策略是怎么样的。

这就是说就算是——人类会基于本人的人性与情绪相当非棋道的素,来开展裁定裁剪。

像,我们经常会面说一个国手的风格是封建的,而任何一个干将的风骨是偏于为激进厮杀的——记得人们对李世石的品格界定就是这样。

随即意味什么?这实际是说,当下同一步可能的决定有100条,其中30久偏保守,30长长的偏激进,40长条和,这么个状态下,一个棋风嗜血的大师可能会见选择那激进的30长达方针,而忽视别的70长条;而一个棋风保守的,则可能选择保守的30条政策;一个棋风稳健的,则恐是那么柔和的40长政策为主。

她们选择策略的元素不是因这些方针可能的胜率更胜,而是这些政策所能够反映出底局部的棋感更适合好之风骨——这是和是否能获胜无关之价值判断,甚至可说凡是同棋本身无关之一样栽判断方式,依据仅仅是温馨是否爱。

重复进一步,人类棋手还得因对方的棋风、性格等元素,来罗出对手所可能走的棋路,从而筛选出或的政策进行还击。

用,也即是说:出于人脑无法处理这样宏大的音信、决策分岔与可能,于是人脑索性利用自身的性格跟经验等元素,做出与拍卖问题无关的消息筛选。

立刻得说凡是AlphaGo与人类棋手最老之差。

人类棋手很可能会见以风格、性格、情绪等等因素的熏陶,而针对性某些可能性做出不够尊重的论断,但这种情况在AlphaGo的算法中是无设有的。

内部,情绪可以经各种招数来制止,但权威个人的品格以及再怪层次的心性元素,却完全可能造成上述弱点在自己无法控制的事态下冒出。但随即是AlphaGo所不拥有的短——当然,这不是说AlphaGo没弱点,只不过没有人类的症结罢了。

究竟其从,这种经过战局外之要素来罗战局内之决定的场面于是会面世,原因在人脑的音信处理能力的阙如(当然要我们计算一个单位体积还是单位质量的处理问题的力来说,那么人脑应该还是优于现在底电脑很多众多之,这点毋庸置疑),从而只能通过这种手法来降低所要分析的信息量,以担保自己得做到任务。

顿时是一模一样栽于片资源下的挑三拣四策略,牺牲广度的同时来换取深度和尾声指向题目的化解。

再者,又由于人脑的这种效果并无是为了有特定任务而支付的,而是对任何生活以及活的话的“通识”,因此这种放弃去自己只能与食指的私有关,而同如拍卖的问题无关,从而无法成功AlphaGo那样完全就经局面的分析来做出筛选,而是通过棋局之外的素来做出选择。

马上就算是人与AlphaGo的顶充分不同,可以说凡是分别写于基因与代码上的命门。

再进一步,人类除了上述决定筛选的通用方案外,当然是发针对性特定问题之一定筛选方案的,具体于围棋上,那便是各种定式、套路及各种成熟或未熟之有关棋形与趋势之理论,或者光是觉得。

也就是说,人经过学习来控制一些和全局特征,并运用这些特征来做出决定,这个手续本身和机械所涉嫌的凡一致的。但不同点在于,人或过于依赖这些已有些经验总结,从而陷入可能出现而无论是人理会的陷阱中。

即就是这次AlphaGo数浅走来有违人类经历常理的棋子着可以后发觉死有因此生辛辣的因——我们并不知道自己数千年来总结下的经验到底能够在多很程度上运叫新的棋局而仍然有效。

然AlphaGo的算法没有这点的麻烦。它则还是下人类的棋谱所于闹底阅历,利用这些棋谱中所呈现出之全局或者有些的规律,但说到底还是碰头经过蒙特卡洛树找寻用这些经历以到对棋局的演绎中去,而无是一直行使这些原理做出定式般的落子。

所以,不但定式对AlphaGo是没意义之,所谓不挪窝寻常路的初棋路对AlphaGo来说威胁为未酷——这次率先店家中李世石的新棋路无就是相同失效了么?因此即使吴清源再世,或者秀哉再世(佐为??),他们就开创来全新的棋路,也非能够当自然能战胜AlphaGo的冲。

辩护及的话,只要出现了的棋谱足够多,那么尽管会招来来围棋背后的法则,而当时即是机器上要挖掘出来的。新的棋路,本质上只是大凡这种规律所演化来底均等栽无人展现了之新状况,而无是新原理。

那,AlphaGo的症结是什么?它是未是都无弱点?

即点倒是未必的。


2.相继打乱,一人口一样摆放依次发牌,一口17摆设,留三摆作背景

AlphaGo的弱点

从AlphaGo的算法本身来说,它同丁同一不可能对富有或的裁定都做出分析,虽然足运用各种手法来做出价值判断,并针对性强价值之核定做出深刻剖析,但说到底非是全部,依然会生遗漏。这点我就是证实:AlphaGo的设想不容许是万事俱备的。

而,很明朗的凡,如果一个生人或者开展的策略在AlphaGo看来只会带不赛之胜率,那么这种策略本身便见面被解除,从而这种方针所带来的变动就不在AlphaGo当下的考虑着。

为此,假如说存在同样种棋路,它以最初的多轮思考中都无见面带动高胜率,那么这种棋路就是AlphaGo“意料之外”的。

若果如这种每一样步都并未高胜率的棋路在多步后方可为起一个对人类来说绝佳的范围,从而让AlphaGo无法翻盘,那么这种棋路就成为了AlphaGo思路的死角。

也就是说说,在AlphaGo发觉它之前,它的诸一样步铺垫都是低胜率的,而最终构造出的棋形却拥有绝对的高胜率,这种低开高走的棋路,是碰头于AlphaGo忽略的。

虽然咱并不知道这种棋路是否是,以及这种棋路如果是的话应当加上什么样,但我们起码知道,从理论及的话,这种棋路是AlphaGo的死角,而及时同样十分角的是就是冲这实际:无论是人要AlphaGo,都未可能针对有策略的兼具演变都掌握,从而无论如何死角总是在的。

本,这无异于争辩及之死穴的存在性并无能够帮忙人类获胜,因为当时要求极生的观察力和预判能力,以及如组织出一个虽AlphaGo察觉了为就回天乏力的几可说凡是决定的层面,这简单接触我的要求就是坏高,尤其以思索深度达到,人类或者本就比不过机器,从而这样的死角可能最后只有机器能够好——也就是说,我们得针对AlphaGo的算法研发一舒缓BetaGo,专门生成克制AlphaGo的棋路,然后人类去念。以算法战胜算法[\[5\]](https://www.jianshu.com/p/ca32e1e66a4b#fn5)

但这样到底是机械赢了,还是人口战胜了吧?

单向,上述方法则是理论及之AlphaGo思维的死角,本人们并无容易控制。那来无人们可以控制的AlphaGo的死角也?

眼看点可能非常难以。我以为李喆的眼光举凡很有道理的,那就是是使用人类现在和历史及的圆经验。

创建新的棋局就必须冲处理你协调都无尽面对充分准备过的范畴,这种情形下人类享有前面所说罢的星星只缺陷从而要么想不了要陷入过往经验和定式的坑中没能够移动出去,而机械也得以重新均匀地指向持有或的范畴尽可能分析,思考再周到周翔,那么人的局限性未必会当初棋局中讨到啊好果子吃。

转,如果是全人类已研究多年分外很熟悉的框框,已经没有初花样可以打出了,那么机器的通盘考虑就不一定能于食指之宏观年经验还占。

所以,面对AlphaGo,人类自以为傲的创造力恐怕反而是阻碍,回归传统应用传统积累才发出或胜利。

然,这样的凯等于是说:我创造力不如机器,我用我之经历砸死你。

人类引以为傲的创造力让丢弃,机器仍应重新擅长的被定式却变成了救人稻草,这不是十分虐心么?

那,创新棋路是否真的不容许战胜AlphaGo?这点至少从此时此刻来拘禁,几乎未容许,除非——

一旦李世石同别的人类实际通过就点儿龙,或者说于即时几年里都排过一个受演绎得那个充分的初棋路,但马上套棋路从来没给为任何形式公开了,那么这样的新棋路对AlphaGo来说可能会见招致麻烦,因为原本创新中AlphaGo的平衡全面考虑或者会见去掉于李世石等人类棋手多年之推理专修而来的国有经验。

故此,我们本发生了三长达可以战胜AlphaGo的可能的路:

  1. 经各一样步低胜率的棋类着结构出一个拥有极其高胜率的圈,利用前期的低胜率骗过AlphaGo的策略剪枝算法,可以说凡是钻算法的狐狸尾巴;
  2. 使用人类千年的围棋经验总结,靠人情定式而休创造力击败思考均衡的AlphaGo,可以说凡是为此历史战胜算法;
  3. 人类棋手秘而不宣地研究没公开了之新棋路,从而突破AlphaGo基于人情棋谱而总学习来的阅历,可以说凡是用创造力战胜算法。

里头,算法漏洞是必杀,但人类未必能掌握,只能依靠未来再也先进的算法,所以不算是是人类的出奇制胜;用历史战胜算法,则可以说抛弃了人类的耀武扬威与自豪,胜之产生耻;而之所以创造力战胜算法,大概算不过有范的,但却照旧很难说得胜——而且万一AlphaGo自己与温馨的千万局对弈中早就发现了这种棋路,那人类还是会惨败。

综上所述,要战胜AlphaGo,实在是均等条充满了艰辛的征途,而且未必会移动到头。


3.看牌:按大小王2A….43的次序排列打印

人相对AlphaGo的优势

虽说,在围棋项目及,人自然最终消除在因AlphaGo为表示的处理器算法的此时此刻,但这并无代表AlphaGo为表示的围棋算法就着实已过了人类。

问题之关键在于:AlphaGo下棋的目的,是预设在算法中之,而非是那和好别的。

也就是说,AlphaGo之所以会错过下围棋,会失去拼命赢围棋,因为人类设定了AlphaGo要失去这么做,这不是AlphaGo自己能决定的。

随即可以说凡是人与AlphaGo之间做生之两样。

只要,进一步来分析的说话,我们不由地若咨询:人生活在此世界上是不是确实是管预设的,完全产生和好决定的吧?

或是不一定。

概括人在内的备生物,基本还起一个预设的对象,那就是一旦保管自己能存下来,也不怕告生欲。

人数可以经过各种后天的更来讲是目标压制下,但马上同样靶本身是描摹于人类的基因被的。

由这点来拘禁,AlphaGo的问题或者并无是受预设了一个对象,而是当前尚未具有设置好之对象的力量,从而就越来越谈不达标因温馨安装的靶子覆盖预设的目标的可能了。

这就是说,如何为算法可以团结设定目标也?这个题材或许没有那么爱来回复。

若果,如果将之题目局限在围棋领域,那么即便改成了:AlphaGo虽然知道要失去赢棋,但并不知道赢棋这个目标可以说为眼前受后三期待的道岔目标,比如人类经常谈及的焉大势、夺实地与最终之胜,这类子目标。

虽在某些小一些,DCNN似乎展现了足以拿题目说为子目标并加以解决的能力,但最少在开设总体目标这个题材达到,目前之算法看来还无法。

这种自助设定目标的力的缺乏,恐怕会是同种植对算法能力的制约,因为子目标有时候会极大地简化策略搜索空间的组织以及大小,从而避免计算资源的浪费。

一边,人超越AlphaGo的一派,在于人享有用各种不同之倒同步过渡抽象出一致栽通用的法则的力量。

众人可以自日常生活、体育活动、工作上等等活动中架空出一致种植通用的法则并结为自我因此,这种规律可当是世界观还是价值观,也还是别的什么,然后用这种三观运用到像做和下棋中,从而形成相同种植通过这种求实活动要体现出好对人生对活的意的非常风格,这种力量时电脑的算法并无克操纵。

这种以每不同领域面临之原理进一步融会贯通抽象出更深一层规律的力,原则及吧并无是算法做不顶之,但我们脚下从未有过见到的一个极根本的故,恐怕是无AlphaGo还是Google的Atlas或者别的啊类型,都是指向一个个特定领域规划之,而非是统筹来针对日常生活的方方面面进行拍卖。

也就是说,在算法设计方面,我们所持有之凡平等栽还原论,将人之力分解还原也一个个天地外的故意能力,而还尚未考虑怎么拿这些解释后底力量再还组成起来。

只是人数在本来演化过程中倒是休是如此,人并无是透过对一个个门类的钻,然后汇聚成一个人数,人是当直面对日常生活中的各个领域的问题,直接演化来了大脑,然后才用是大脑失去处理一个个一定领域内的现实问题。

之所以,算法是由于底向上的计划性方式,而人类却是由于至向下之统筹方法,这恐怕是两者极其特别之不同吧。

当时为就是,虽然以有具体问题达成,以AlphaGo为代表的电脑的训练样本是远大于人的,但以整体上来说,人之训练样本却可能是颇为超计算机的,因为人可以应用围棋之外的别的日常生活的动来训练好之大脑。

即时可能是如出一辙种植新的读书算法设计方向——先规划相同栽好行使有可以探测到之动来训练好之神经网络演化算法,然后重新使用这个算法都变的神经网络来读有特定领域的问题。

这种通用的神经网络算法相对于专门领域的算法到底是优是劣,这或在那无异上出来以前,人类是力不从心了解之了。


示例:

人与AlphaGo的不同

终极,让咱回去AlphaGo与李世石的对弈上。

咱得以看来,在就简单商店中,最特别的一个特色,就是AlphaGo所理解的棋道,与人口所理解的棋道,看来是有异常特别的不比之。

及时也算得,人所计划的产围棋的算法,与人自己对围棋的知道,是殊之。

即时象征什么?

当下象征,人以解决有问题要设计之算法,很可能会见做出与人对之题目之懂得不同之行事来,而者作为满足算法本身对这题目的晓。

当时是同等宗细思极恐的从业,因为及时象征有双重胜力量的机械可能因为掌握的不同而做出与丁不同之表现来。这种行为人无法清楚,也无能为力看清究竟是针对凡错是好是不行,在最后结果到来之前人根本未了解机器的作为到底是何目的。

用,完全可能出现同样种特别科幻的规模:人设计了平法“能用人类社会变好”的算法,而及时套算法的一言一行却为人一齐无法知晓,以至于最终之社会或再也好,但中间的行为及吃丁带的面也是人类有史以来想不到的。

立马大概是极度受人忧虑的吧。

理所当然,就目前吧,这同样天之至大概还早,目前咱们还未用最为操心。


package demo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;

public class DouDiZhu {
    public static void main(String[] args) {
        // 创建Map集合,键是编号,值是牌
        HashMap<Integer, String> pooker = new HashMap<Integer, String>();
        // List集合存储编号
        // 用List集合原因:可以调用排序方法
        ArrayList<Integer> pookerNumber = new ArrayList<Integer>();
        // 由于13个点数恒定,定义数组
        String[] numbers = { "2", "A", "K", "Q", "J", "10", "9", "8", "7", "6", "5", "4", "3" };
        // 花色恒定,定义数组
        String[] colors = { "♠", "♥", "♣", "♦" };
        // 定义整数变量,作为键,0和1留给大小王
        int index = 2;
        // 遍历数组,存入Map集合
        for (String number : numbers) {
            for (String color : colors) {
                pooker.put(index, color + number);
                pookerNumber.add(index);
                index++;
            }
        }
        // 单独存储大小王
        pooker.put(0, "大王");
        pookerNumber.add(0);
        pooker.put(1, "小王");
        pookerNumber.add(1);

        // 洗牌,将牌的编号打乱
        Collections.shuffle(pookerNumber);

        // 发牌
        // 三个玩家和底牌
        ArrayList<Integer> player1 = new ArrayList<Integer>();
        ArrayList<Integer> player2 = new ArrayList<Integer>();
        ArrayList<Integer> player3 = new ArrayList<Integer>();
        ArrayList<Integer> dipai = new ArrayList<Integer>();
        // 每张依次发到三个玩家
        for (int i = 0; i < pookerNumber.size(); i++) {
            // 先将底牌做好
            if (i < 3) {
                dipai.add(pookerNumber.get(i));
            }
            // 依次给每个玩家发牌
            else if (i % 3 == 0) {
                player1.add(pookerNumber.get(i));
            } else if (i % 3 == 1) {
                player2.add(pookerNumber.get(i));
            } else if (i % 3 == 2) {
                player3.add(pookerNumber.get(i));
            }
        }
        // 对玩家手中的牌排序
        Collections.sort(player1);
        Collections.sort(player2);
        Collections.sort(player3);
        // 看牌,根据键找值
        look("玩家1", player1, pooker);
        look("玩家2", player2, pooker);
        look("玩家3", player3, pooker);
        look("底牌", dipai, pooker);
    }

    public static void look(String name, ArrayList<Integer> player, HashMap<Integer, String> pooker) {
        System.out.print(name + ":");
        for (Integer key : player) {
            String value = pooker.get(key);
            System.out.print("    " + value);
        }
        System.out.println();
    }
}

结尾

今天是AlphaGo与李世石的老三轮子对决,希望会有惊喜吧,当然我是说AlphaGo能为人类带重新多之惊喜。


正文遵守编著共享CC BY-NC-SA
4.0商事

经以协议,您可以大饱眼福并修改本文内容,只要您恪守以下授权条款规定:姓名标示
非商业性一如既往方式分享
具体内容请查阅上述协议声明。

正文禁止合纸媒,即印刷于纸之上的全方位组织,包括但切莫制止转载、摘编的其它利用及衍生。网络平台如需转载必须和我联系确认。


假如喜欢简书,想要下充斥简书App的说话,轻戳这里~~
<small>私人推荐订阅专题:《有意思的文章》、《严肃码匠圈》</small>


  1. 本着,是世界第二,因为即便当新春外刚好给中国围棋天才柯洁斩落马下,所以柯洁现在凡是社会风气第一,李世石很丧气地降低到了世界第二。当然了,AlphaGo背后的DeepMind团队打算挑战李世石的时段,他尚是世界第一。

  2. 出一个特别有意思的意义,称为“AI效应”,大意就是说要机器在某个世界跨越了人类,那么人类就会揭示这等同天地无法表示人类的聪明,从而一直保在“AI无法过人类”的范围。这种掩耳盗铃的鸵鸟政策其实是吃丁叹为观止。

  3. 当即片足看Facebook围棋项目DarkForest在知乎的章:AlphaGo的分析

  4. 策梅洛于1913年提出的策梅洛定理表示,在次口之个别游戏被,如果两者都有了的消息,并且运气因素并无拉在嬉戏受,那先行或后行者当中必起雷同方来必胜/必非破的政策。

  5. 随即上面,有人已研究了千篇一律种算法,可以专程功课基于特定神经网络的读书算法,从而构造出当丁看来无论是意义的噪音而以计算机看来却能够认得别出各种不设有的图纸的图像。未来这种对算法的“病毒算法”恐怕会比较上算法本身有双重怪之市场和重胜似的关注。

 

效果:

每次的结果还非平等:

 

产生趣味之心上人可以根据斗地主的平整接轨支付下去,做成一个略的斗地主游戏