去年的高中同学会上,吃完饭后大家就坐成一圈开始玩猜数游戏了。主持人自己在手机上输入一个1到,比如说500,的数,然后大家轮流猜数,并由主持人告之是猜大了还是猜小了。猜中了的那个人接受惩罚,真心话,或者大冒险,然后成为新的主持人。例如,我们班班长想了个数230。然后某男猜200,班长说“200到500”,意思就是200小了,以后的人只能猜200到500之间的数;接下来某女说“300”,美女班长说“200到300”;然后另一个MM猜250,班长回答“200到250”;然后就轮到我猜了,我说“230吧”,班长一脸坏笑把手机拿出来给大家看,说“哈哈,你猜中啦”。然后呢,我就和某个MM做了一件特别牛B的事情,细节呢就不在这里说了。
    当天同学会结束后我赶回学校机房继续讲课。我提出了这么一个问题:如果我不想猜中的话,怎么决策最好?如果我想猜中的话,又该猜什么呢?这个博弈过程复杂就复杂在,这是由多个人参与的游戏,目的不是尽早猜中或者最晚猜中,最佳决策很可能既不是猜正中间也不是猜最大或最小;游戏是一圈一圈地循环进行,策略要视总人数和数字范围而定,并且很可能每个人居心各不相同。

写完前面那篇日志,我突然意识到:由于我们只能猜某个范围内的数,而该范围总是会变得越来越小,因此这个问题的状态有一个非常自然的拓扑序。我们立即想到,这是一个典型的动态规划模型:设f[i, j_1, j_2, k_1, k_2]表示还剩下i个数要猜,如果当前这个人(比如张三)希望用最少j_1次最多j_2次猜测结束游戏,而事实上在他的最优策略下猜测次数落在k_1到k_2范围内的概率。由于大家是围成一圈依次猜数,因此对j_1, j_2, k_1, k_2可能需要引入关于总人数同余的概念。枚举决策l,可能性分三种:有1/i的可能性直接猜中,有(l-1)/i的可能性猜大了,还有(i-l)/i的可能性猜小了。对于后两种情况,状态转移到下一个人(比如李四)在剩下的数中作出符合他(李四)的利益的最佳选择后,张三所期望的事实将会发生的概率。得出最佳决策后,还可以根据已有结果算出在张三的这种策略下实际上各种结局发生的概率。状态的具体定义和转移方程随着具体情况的变化而变化。例如,所有人都足够聪明并且都不想猜中,或者某些人将会像傻子一样的随机猜,或者男女各坐一个半圆两边想互相陷害,或者n-1个人合伙想整剩下的那个人,或者你反倒想猜中这个数从而有充分的借口猥亵一个多年来一直让你欲火焚身的漂亮MM。
    这个动态规划的思路是不是正确的?在每一种具体问题下可以怎样简化和优化?程序运行的结果怎样呢?这个问题还可以怎样扩展?欢迎大家在下面留言谈谈自己的看法。

寻求真心话大冒险之猜数游戏的最佳策略相关推荐

  1. 真心话大冒险HTML5小游戏,真心话大冒险游戏怎么玩才有趣

    说到真心话大冒险,这应该是年轻人都喜欢玩的一个游戏,下面小编为大家整理了关于真心话大冒险的游戏玩法,欢迎大家阅读. 真心话大冒险游戏怎么玩才有趣 包厢里几个人围坐在一起,分散着坐在包厢里的各个角落,会 ...

  2. 7、猜数游戏。预设一个0~9之间的整数,让用户猜一猜并输入所猜的数,如果大于预设的数,显示“太大”;小于预设的数,显示“太小”,如此循环,直至猜中该数,显示“恭喜 你猜中了”

    a=6;b=0 print("欢迎来到猜数游戏") while a<b or a>b:b=int(input("请在0~9之间参一个数:"))if ...

  3. 真心话大冒险C++版本

    Hi~ 又到了给大家分享知识的时候,之前写的博客都是清一色的题解博客,可能许多小伙伴们对次毫无兴趣,今天我们来整点有意思的东西 那就是<<真心话大冒险>>,hhhhhhh,接下 ...

  4. buaacoding C.真心话大冒险

    北航的同学扔过来的题目. 你航还真是凶残,同学没语言基础,下半年开学才开始接触C语言,现在就做这种题. 能写出直接模拟的办法,时间复杂度O(n^2),空间复杂度(O^2),实在是谈不上优秀. 按照题目 ...

  5. 《用Chrome学编程》真心话大冒险

    Gif高清原图地址: user-images.githubusercontent.com/15868458/63- 真心话大冒险 在线地址: https://zhaoolee.com/Programm ...

  6. 计算机猜数游戏matlab,MATLAB课程设计报告猜数游戏设计

    课程设计的目的及意义 目的:通过本次课程设计,可以使我进一步认识MATLAB理论方法和实际意义,对理论知识进行必要实践.培养我们设计和仿真的基本能力,以便最终和生产实践以及其他科学结合. 意义: 1. ...

  7. 十四、Java练习:一个猜数游戏

    @Author:Runsen @Date:2020/5/23 本专栏是付费学Java专栏,今天我做一个猜数游戏.将前面,我写的全部复习下. 其实,这个猜数游戏,也是我学Java中的学过的. 文章目录 ...

  8. 猜数游戏,随机目标数字,直到猜中退出

    /* 猜数游戏(其三:目标数字是0~999的随机数)*/#include <time.h> #include <stdio.h> #include <stdlib.h&g ...

  9. 采用python语言实现猜数游戏_用python实现猜数游戏

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文实例为大家分享了python实现猜数游戏的具体代码,供大家参考,具体内容如下 ...

最新文章

  1. 剑指offer:面试题20. 表示数值的字符串
  2. 【Flutter】Dart 函数 ( 函数构成 | 私有函数 | 匿名函数 | 函数总结 )
  3. Express中间件的应用-路由保护(登录限制)、网站维护、页面404
  4. java bean传索引_Java如何设置bean的索引属性值?
  5. readonly和const的区别
  6. 【转】为了修复打码女神脸,他们提出二阶段生成对抗网络EdgeConnect
  7. nginx学习之详细安装篇(二)
  8. Elasticsearch: Cerebro 用户界面介绍
  9. SHOP++ JTM2.5发布
  10. echarts使用之坑 隐藏显示echarts变形 echarts官网访问不了
  11. android对cpu硬件要求,Android手机想用64位处理器?系统阻碍
  12. 湖北武汉劳务员培训劳务管理五条新举措建筑七大员培训
  13. javaweb项目实战(附有源码)
  14. 互联网产品的定义及分类
  15. 2022年,建议你一定要读的10本网络安全书籍
  16. python中3or5-python3 中 and 和 or 运算规律
  17. 有限体积法(11)——交错网格
  18. c语言延时30s的程序,用c语言实现后台运行的、每隔30s检查一次的、带有日志功能的断网重新连接程序...
  19. Github:将近4万Star的Java、Python面试指南献给大家!
  20. python物联网全栈开发实践

热门文章

  1. 自己动手模仿 springmvc 写一个 mvc框架
  2. 一分钟告诉你究竟DevOps是什么鬼?
  3. idea常用快捷键图文_如何在Word中的自动图文集词条中添加快捷键
  4. int bool str (索引,切片) for 循环
  5. QCC307X-QCC517X repo下载
  6. 玲珑杯2.5 1032 A-B
  7. WordCloud词云图去除停用词的正确方法
  8. slb健康检查方式_负载均衡(SLB)
  9. OpenCV之图像透视变换
  10. MLAT-Autoencoders---下篇-关键代码及结果展示(3)(终)