[数学故事]火柴游戏

简介: 一个最普通的火柴游戏就是两人一起玩,先置若干支火柴於桌上,两人轮流取,每次所取的数目可先作一些限制,规定取走最后一根火柴者获胜。 规则一:若限制每次所取的火柴数目最少一根,最多三根,则如何玩才可致胜? 例如:桌面上有 n=15 根火柴,甲、乙两人轮流取,甲先取,则甲应如何取才能致胜? 为了要取得最后一根,甲必须最后留下零根火柴给乙,故在最后一步之前的轮取中,甲不能留下1根或2根或3根,否则乙就可以全部取走而获胜。
  一个最普通的火柴游戏就是两人一起玩,先置若干支火柴於桌上,两人轮流取,每次所取的数目可先作一些限制,规定取走最后一根火柴者获胜。 

规则一:若限制每次所取的火柴数目最少一根,最多三根,则如何玩才可致胜

例如:桌面上有 n=15 根火柴,甲、乙两人轮流取,甲先取,则甲应如何取才能致胜

为了要取得最后一根,甲必须最后留下零根火柴给乙,故在最后一步之前的轮取中,甲不能留下1根或2根或3根,否则乙就可以全部取走而获胜。如果留下4根,则乙不能全取,则不管乙取几根(1或2或3),甲必能取得所有剩下的火柴而赢了游戏。同理,若桌上留有8根火柴让乙去取,则无论乙如何取,甲都可使这一次轮取后留下4根火柴,最后也一定是甲获胜。由上之分析可知,甲只要使得桌面上的火柴数为 4、8、12、16... 等让乙去取,则甲必稳操胜券。因此若原先桌面上的火柴数为15,则甲应取3根。(∵15-3=12)若原先桌面上的火柴数为18呢?则甲应先取2根(∵18-2=16)。

规则二:限制每次所取的火柴数目为1至4根,则又如何致胜

原则:若甲先取,则甲每次取时,须留5的倍数的火柴给乙去取。

通则:有n支火柴,每次可取1至k支,则甲每次取后所留的火柴数目必须为k+1之倍数。

规则三:限制每次所取的火柴数目不是连续的数,而是一些不连续的数,如1、3、7,则又该如何玩法?

分析:1、3、7均为奇数,由於目标为0,而0为偶数,所以先取者甲,须使桌上的火柴数为偶数,因为乙在偶数的火柴数中,不可能再取去1、3、7根火柴后获得0,但假使如此也不能保证甲必赢,因为甲对於火柴数的奇或偶,也是无法依照己意来控制的。因为〔偶-奇=奇,奇-奇=偶〕,所以每次取后,桌上的火柴数奇偶相反。若开始时是奇数,如17,甲先取,则不论甲取多少(1或3或7),剩下的便是偶数,乙随后又把偶数变成奇数,甲又把奇数回覆到偶数,最后甲是注定为赢家;反之,若开始时为偶数,则甲注定会输。

通则:开局是奇数,先取者必胜;反之,若开局为偶数,则先取者会输。

规则四:限制每次所取的火柴数是1或4(一个奇数,一个偶数)。

分析:如前规则二,若甲先取,则甲每次取时留5的倍数的火柴给乙去取,则甲必胜。此外,若甲留给乙取的火柴数为5之倍数加2时,甲也可赢得游戏,因为玩的时候可以控制每轮所取的火柴数为5(若乙取1,甲则取4;若乙取4,则甲取1),最后剩下2根,那时乙只能取1,甲便可取得最后一根而获胜。

通则:若甲先取,则甲每次取时所留火柴数为5之倍数或5的倍数加2。
目录
相关文章
ffmpeg 命令提取音视频数据-ffmpeg导出h265裸流-ffmpeg导出h264裸流
ffmpeg 命令提取音视频数据-ffmpeg导出h265裸流-ffmpeg导出h264裸流
507 0
|
8月前
|
传感器 机器学习/深度学习 人工智能
从“手环”到“健康顾问”:可穿戴设备背后的数据魔法
从“手环”到“健康顾问”:可穿戴设备背后的数据魔法
721 10
从“手环”到“健康顾问”:可穿戴设备背后的数据魔法
|
4月前
|
机器学习/深度学习 数据采集 运维
基于核密度估计Kernel Density Estimation, KDE的数据生成方法研究(Matlab代码实现)
基于核密度估计Kernel Density Estimation, KDE的数据生成方法研究(Matlab代码实现)
175 3
|
12月前
|
人工智能 数据可视化 前端开发
低代码开发平台哪些好用?推荐这六款!
低代码开发平台通过可视化拖放方式简化编程,适合技术人员和业务专家。本文推荐六款平台:织信、明道云、IVX、轻流、伙伴云、搭搭云。各平台特色如下:1. **织信**:企业级性能,支持多场景应用,AI深度融合,自动化蓝图。2. **明道云**:零代码构建,超自动化引擎,多端可用,开放性设计。3. **IVX**:全栈代码生成,多语言支持,可视化编程,跨平台兼容。4. **轻流**:强大表单引擎,流程引擎,Q-Robot业务机器人,数据分析。5. **伙伴云**:云表格Pro,项目协作,丰富的行业模板,强大的数据处理。6. **搭搭云**:功能全面,个性化定制,移动端免开发,快速响应业务变化。
|
9月前
|
Ubuntu Linux Docker
Docker 入门全攻略:安装、操作与常用命令指南
Docker 的世界非常广阔,这只是一个开始,请继续探索和学习 Docker 的高级特性和最佳实践。后续也会继续更新相关的理论与实践内容。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
12月前
|
机器学习/深度学习 数据采集 人工智能
《大模型训练成本高,如何在不牺牲性能的前提下破局》
在人工智能领域,大模型训练成本高昂,主要源于硬件设备、数据处理和算法优化的需求。降低训练成本的关键在于合理配置硬件资源、改进数据处理方法、优化算法和模型结构,以及采用分布式训练技术。通过这些措施,企业可以在不影响模型性能的前提下,显著减少计算资源、人力和时间的投入,实现更高效的模型训练。实践证明,综合运用这些方法能够有效降低成本,推动人工智能技术的可持续发展。
796 18
|
数据采集 Web App开发 iOS开发
使用Selenium时,如何模拟正常用户行为?
使用Selenium时,如何模拟正常用户行为?
|
NoSQL Go Redis
用 Go + Redis 实现分布式锁
用 Go + Redis 实现分布式锁
|
Windows
任务栏透明 TranslucentTB
TranslucentTB 是一个开源项目,一个轻量级(使用几 MB RAM,几乎不使用 CPU)的实用程序, 使 Windows 任务栏在 Windows 10 和 Windows 11 上半透明/透明。
275 2
|
前端开发 JavaScript Java
孔夫子图书商城购物系统的设计与实现(论文+源码)_kaic
孔夫子图书商城购物系统的设计与实现(论文+源码)_kaic