今天是小浩算法“365刷题计划”第78天。这次小浩又出去面试了,面试官说想和我画圈圈(原题为狼厂校招面试题),想起来还有点羞羞的。

01

PART

画圈圈

!@#¥%……&*........Zzzzzzz(休眠中)

面试题:小浩出去面试时,面试官拿出一张纸,在纸上从左到右画了一百个小圆圈(手速快,没办法)接下来,面试官要求两人轮流涂掉其中一个或者两个相邻的小圆圈。

规定:谁涂掉最后一个小圆圈谁就赢了(换句话说,谁没有涂的了谁就输了)。问题是:小浩应该选取先涂还是后涂?如何才能有必胜策略?

(难顶...)

02

PART

题目分析

策梅洛定理(英语:Zermelo's theorem)是博弈论的一条定理,以恩斯特·策梅洛命名。策梅洛的论文于1913年以德文发表。表示在二人的有限游戏中,如果双方皆拥有完全的资讯,并且运气因素并不牵涉在游戏中,那先行或后行者当一必有一方有必胜/必不败的策略。

作为聪明机智的小浩(没见过这么夸自己的),最后当然是小浩获胜。获胜的方法:小浩强烈要求先手进行游戏,并且在游戏开始时,先把正中间的两个小圆圈涂黑,于是左右两边各剩下了49个圆圈。像是下面这样:

然后小浩开始模仿(逼死)面试官,面试官在左边涂掉哪些圆圈,小浩就对称地在右边涂掉哪些圆圈;面试官在右边涂掉哪些圆圈, 小浩就对称地在左边涂掉哪些圆圈。因此,只要面试官有走的,小浩就一定有走的,最终保证能获胜。

(逼死强迫症....)

03

PART

改编版

大概的思想还是一致,想办法找到可以使用 “对称大法”的时机,就可以必胜。

假若刚开始的时候,100小圆圈成环排列,游戏规则完全相同,此时如何可以让小浩有必胜策略?评论区留下你的想法吧!(为了让大家不对纯粹的算法题产生疲惫,以后采取 算法题 - 逻辑题 穿插的形式来进行讲解)

04

PART

额外补充

在组合博弈论里,无偏博弈是一类任意局势对于游戏双方都是平等的回合制双人游戏。这里平等的意思是所有可行的走法仅仅依赖于当前的局势,而与现在正要行动的是哪一方无关。换句话说,两个游戏者除了先后手之外毫无区别。

有兴趣的可以看一下 掰巧克力 的题目:

漫画:美团面试题(面试时,面试官给了我一块巧克力。。)

本题,以及之前的掰巧克力题目,其实都属于博弈论中的一类问题,它们有三个共同特征:

  • 游戏信完全透明的,每个人都知道对方可以怎么走,结果会怎么样;

  • 下一步可以怎么走与下一步是谁走没有关系,换句话说我能以哪些方式操作哪些棋子,你就能以哪些方式操作哪些棋子(排除了象棋之类的游戏);

  • 整个游戏必然会在有限步之内结束,谁先没走的了谁就输了。

在博弈论中,这类游戏就叫做“无偏博弈”(impartial game)。在无偏博弈中,如果对于某个棋局状态,谁遇到了它谁就有办法必胜,我们就把它叫做“必胜态”;如果对于某个棋局状态,谁遇到了它对手就会有办法必胜,我们就把它叫做“必败态”

一般而言,根据题意我们可以立即判断出,那些不能走的状态就是必败态了。从这些必败态出发,我们可以按照下面两条规则,自底向上地推出其他所有状态的性质:有办法走到必败态的状态就是必胜态,只能走到必胜态的状态就是必败态。最终,我们总会得出初始状态的性质:它要么是必胜的,要么是必败的。因而,我们可以证明,在一切无偏博弈中,总有一个玩家有必胜策略。

如果后面再给大家分享博弈论的问题,我将会讲解一些“非无偏”类型的题目,供大家学习和参考。如果想看其他逻辑趣味面试题的,可以看:

漫画:震惊!直觉误判类题目在面试时是如何坑人的?

漫画:细思极恐,生男女几率相同,那为什么很多国家男女比例还失衡呢?

漫画:博弈论系列 之 海盗分金币的故事(附:代码实现)

漫画:博弈论系列 之 红眼睛和蓝眼睛(附:旅客的挽回)

漫画:腾讯面试题(面试官问我会不会修供暖器,我说没问题)

如果你问我对学习算法有什么建议,这篇文章是必看的:

漫画:呕心泣血算法指导篇(真正的干货,怒怼那些说算法没用的人)

 小浩算法,每日

关注领取《图解算法》高清版

进群的小伙伴请加右侧私人微信(备注:进群)

-----抽奖分隔线----

???????????? 扫码回复“红包”参与抽奖

金额:100元 | 个数:20个 | 中奖率:20%

漫画:狼厂校招面试题(面试官说要和我画圈圈...)相关推荐

  1. 面试官:CSS如何画一个三角形?原理是什么?

    一.前言 在前端开发的时候,我们有时候会需要用到一个三角形的形状,比如地址选择或者播放器里面播放按钮 通常情况下,我们会使用图片或者svg去完成三角形效果图,但如果单纯使用css如何完成一个三角形呢? ...

  2. 还在背面试题?听小米面试官怎么说?【面试官教你如何对线面试官】

    我们本章要学习的内容有软件测试行业现状以及发展的前景,然后测试的职业发展与规划,还有软件测试的定义.目的以及对象,还有很重要的软件测试原则. 1.测试行业行业现状与前景 2.测试职业发展与规划 3.测 ...

  3. 最新软件测试面试题+笔试题(十个面试官里有九个会问)

    文章目录 前言 领取作者整理的学习资料 软件测试常见的面试题: 1.测试分为哪几个阶段? 2.软件测试方法有哪些? 3.数据库中sum和count的区别以及使用 4.设计一个模块测试用例 5.pyte ...

  4. 经典网工面试题,90%的面试官都会问你这些

    哈喽,大家好,我是网工学姐~ 今天给大家整理的面试题,是关于企业网构架.传输介质.冲突域和广播域方面的,如果你是第一次看到我的文章,可以进主页往前翻翻哦,有更多面试题~         面试官:你知道 ...

  5. 大厂面试干货:面试官最喜欢pick什么样的候选人

    大厂面试干货:面试官最喜欢pick什么样的候选人 前言 基础知识.项目经历两手抓 技术探索和沟通协作都不能少 动手能力一定要强 总结 前言   很多在CSDN的小伙伴都是研发岗,那么大厂的研发面试官们 ...

  6. 曾为面试官的我也有今天,面试百度Android被按地上血虐

    引言 最近加入了 BIDU(百度) 某部门(具体保密,下文简称B),遂一群周遭好友来讨要面经: 其实自己过去在前东家也负责很多面试工作,对于这种内容猛一想还是保密相对好些,然鹅仔细想想涉及的东西很多是 ...

  7. 【运维面试】面试官: tomcat三个端口号的作用

    面试题 面试官: 在tomcat的配置文件 server.xml中有三个端口,他们的作用是什么? 解答 在 conf/server.xml中有三个端口,一个是8080,一个是8009,一个是8005 ...

  8. 面试官本拿求素数搞我,但被我优雅的“回击“了(素数筛)

    原创公众号(希望能支持一下):bigsai 转载请联系bigsai 文章收录在github 求star 前言 现在的面试官,是无数开发者的梦魇,能够吊打面试官的属实不多,因为大部分面试官真的有那么那几 ...

  9. 面试官:你知道怎么求素数吗?

    摘要:面试官:你知道怎么求素数吗?我:求素数? 本文分享自华为云社区<很多人不知道的求素数的正确方法>,原文作者:bigsai . 前言 现在的面试官,是无数开发者的梦魇,能够吊打面试官的 ...

最新文章

  1. 常用分类算法的优缺点
  2. python语言实战-Python实战-从菜鸟到大牛的进阶之路 pdf完整版
  3. 10个月产品演化之路-快速试错,快速反应,探索产品成功之道
  4. ORA-01123:无法启动联机备份;未启用介质恢复(错误分析)
  5. 文件 numpy_通过 Kaggle 入门 NumPyamp;Panda
  6. elasticsearch说了一些了,这次说说Solr【入门Solr这篇就够了】
  7. 《C++ Primer》14.3.2节练习(部分)
  8. [html] html5中的meta标签http-equiv属性有什么作用?
  9. php解escape,PHP下escape解码函数用法示例
  10. 为什么input中的maxlength属性失效了
  11. Android Audio Focus的应用(requestAudioFocus)
  12. Twhirl's limit exceeded
  13. DevExpress中使用ChartControl绘制折线图和导出图表为Excel文件
  14. python定时任务_Python 定时任务的实现方式
  15. Robot Framework怎么导入selenium2library类库
  16. Tomcat调优技巧
  17. win7开启ftp被动模式_什么是FTP功能?Win7旗舰版下如何开启FTP功能?
  18. linux 如何配置无线网卡驱动,Linux配置无线网卡驱动实现无线上网
  19. MOS管(场效应管)工作原理,及反向导通应用
  20. 加州房价模型(住房价格中位数)

热门文章

  1. MFC实现播放SWF
  2. scanf 接收 空格 输入_scanf函数可以输入空白符
  3. sqlserver跟踪数据库_说说被遗忘的数据库开发职业 - 数据库测试
  4. 创投综艺天花板《我要投资4》到底是一种什么样的存在?
  5. 5年客户端开发的程序员如何转型服务端开发?
  6. 如何区分“旁路电容”和“去耦电容”
  7. parseInt转换数值
  8. 京东社交电商“东小店”关闭
  9. 【腾讯云】COS和CFS的区别
  10. socket编程:WSAStartup函数详解