发散性思维(一)——通过变通和联想来解决问题

简介: 发散性思维(一)——通过变通和联想来解决问题

没错,我又要开一个新的系列文章了。

第一篇文章我们来玩一个游戏:

两个人从1,2,3,4,5,6,7,8,9里面轮流取数,每次取一个数,一个人取了某个数,另一个人就不能再取它了。

取胜条件: 1.先取数的人,从自己拥有的数字里面任取三个数,这三个数相加之和为15。 2.后取数的人:三个数之和为15。

例如:A取6,B取7,A取4,B取3,A取5,此时A的三个数之和为15,A获胜。

这个游戏初看起来很简单,但是策略性却不低。

  1. 假设A取了一个数字4,为了获胜,他接下来需要取两个数,这两个数之和是11,那么组合有(2, 9)、(3, 8), (5, 6)。
  2. 此时B为了防止A胜利,那么他可以设法破坏一个组合,比如他取走了3。
  3. A只能从(2, 9),(5, 6)里面取一个数。如果A取了2,B就取9;
  4. A取6,B取5
  5. 现在局势倒转了,B拥有5和9、3和5,如果A取1,那么B取7胜利;如果A取7,那么B取1胜利。

A虽然有先手优势,但是他一味贪胜,没有注意到B在堵他的时候,依然悄悄凑够了一个胜利的局势。

B虽然是后手,但是他在A第一次取了数以后,并不是随便乱选一个数来破坏A剩余的11,而是有策略的深入考虑了后面的可能性。如果B一开始没有选3,而是选的8,或者A选了5,那么B就只能被牵着鼻子走,不停去防守,失去进攻的机会了。

你可能会觉得这个题目还挺烧脑子。不容易想到两步之后。那么我给你念一句你小学时候在奥数里面听过的顺口溜:

戴九履一,左三右七,二四为肩,六八为足,五在当中。

这就是洛书乌龟背上面的三阶幻方,如下图所示:

在这个九宫格里面,横向、纵向、对角线上面的三个数字之和均为15。那么上面的选15的游戏,实际上就转换成了在幻方里面选数字。

再进一步,由于是轮流取数字,那么这实际上和下面这个游戏没什么区别:

上面的取数游戏,本质上就是井字棋,而且是最简单的三阶井字棋。

三阶井字棋,要输掉是极其困难的,绝大多数情况下都是以平局结束。

如果以三阶井字棋来复盘上面的取数游戏,首先A取了4,B取了3,局势如下图所示:

显然,B最优的策略是取中间,但是他取了中间左边。A此时如果选中心还有胜利的希望,即时不选中心,选上层的中间也可以。但是他取选了上层右边,白白送掉了自己的性命。

大家可以在井字棋上画一下,A有很多赢的机会,但是由于看不到局势而全都错过了。

这个小游戏作为这个系列的第一篇,更多的精彩,还请大家继续关注。

目录
相关文章
|
1月前
|
设计模式 算法 程序员
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
作为开发者,我们在日常开发过程中,往往会遇到反复修改bug的情况,而且不能一次性把代码写的完美无瑕,其实开发项目是一项复杂而富有挑战性的任务,即使经验丰富的程序员也难以在一次性编写完美无瑕地完成代码,我个人觉得一次性写好代码是不可能完成的事情。虽然在设计之初已经尽力思考全面,并在实际操作中力求精确,但程序员仍然需要花费大量时间和精力来调试和修复Bug。那么本文就来分享程序员需要反复修改Bug的原因,以及在开发中所面临的复杂性与挑战。
86 1
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
|
7月前
|
敏捷开发 前端开发 开发者
想要成为软件开发中的王者,需要明白的 21 条准则
想要成为软件开发中的王者,需要明白的 21 条准则
|
XML 测试技术 数据格式
【实测】有奇效!用测试用例设计的路子去学习新知识点。
【实测】有奇效!用测试用例设计的路子去学习新知识点。
谈谈讲清楚这件事的重要性
如何讲清楚一件事我相信很多人都很困惑也很无助,尤其是在晋升场合,在向上汇报或者是做大范围分享的时候,恨不得找个地缝钻进去。很多时候我们常常是这样安慰自己,我是实干派技术人,不需要那些花里胡哨的东西,我技术过硬比什么都重要。曾经一度我也是这样认为,最后改变我这个想法的是一句话:如果你讲不清楚多半是想不清楚,如果你都想不清楚如何能够带领更多人拿到结果?
1570 2
|
存储 机器学习/深度学习 人工智能
用技术解决看似不可能的事
当前,反诈已经成为了一项全民参与的行动。在支付宝,人们给疑似诈骗账号转账时,就会在输入账号的0.1秒内接到一个电话,提醒你正在遭遇诈骗。迅速识别风险阻止诈骗发生,这背后,图计算技术发挥了至关重要的作用。
166 0
用技术解决看似不可能的事
|
设计模式 开发框架 JSON
了解这些软件设计思想,你的思维至少上升一个段位
在 1994 年,由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,该书首次提到了软件开发中设计模式的概念,四位作者合称 GOF(全拼 Gang of Four),简称四人帮!
|
前端开发 数据可视化 JavaScript
汤尧:走最难的路,看最好的风景
成长一种修炼,借事修人,从项目中探索成长之路,走最难的路,看最好的风景。
汤尧:走最难的路,看最好的风景
|
测试技术 程序员
那些会阻碍程序员成长的细节[1]
罗马非一日建成,软件系统也不是一天能够写出来的,在经年累月的编码生活中,总会有那么些个不经意的瞬间暴露出来,而这些不经意的外在表现日积月累,犹如水滴石穿,会产生巨大的力量反作用于程序员的成长。我简单列了几条,你来看一看,兴许就在身边实实在在发生过。
1116 0