一、21根火柴棍问题(21 Matchticks Problem)

21根火柴棍问题是西方经典游戏之一。

给定21根火柴,2个人A和B(比如:分别是计算机和用户)。
每个人一次可以挑选 1-- 4 根火柴。

被迫挑最后一根火柴的人输了。

二、确保自己胜利(玩赖)的办法

这个想法是考虑20根火柴棒,因为谁会选择最后一根火柴,谁就会输掉比赛。
将20分成四部分,即每个部分的大小为5。
因此,如果电脑选择了x根火柴棒,那么用户应该选择(5-x)根火柴棒,并以同样的方式进行操作。
这样,20根火柴将被使用,最后一根火柴将由计算机拾取。

源代码:

using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;namespace Legalsoft.Truffer.Algorithm
{public static partial class Algorithm_Gallery{public static List<int> Twentyone_Matchstick(int[] arr){int N = arr.Length;List<int> list = new List<int>();for (int i = 0; i < N; i += 1){list.Add(5 - arr[i]);}return list;}}
}

三、更多的火柴棍

当然可以设计更多火柴棍的游戏。

其基本原则是,假设火柴棍为 M+1 根 ,选择游戏限制为每次拿 1---N 根火柴。
M,N 应该有一个合适的 公约数!

POWER BY TRUFFER.CN
BY 315SOFT.COM

C#,21根火柴棍问题(21 Matchticks Problem)的算法与源代码相关推荐

  1. c语言假设有21根火柴棍,10道火柴棍趣味智力题,据说全对的都是天才!

    原标题:10道火柴棍趣味智力题,据说全对的都是天才! 各位小朋友及大朋友们,晚上好!欢迎来到科学有意思栏目.发现身边有趣的科学现象,激发孩子好奇心! 相信很多80后的朋友们,小时候一定和同学玩过各种趣 ...

  2. Craps赌博游戏、百钱白鸡、七星彩选号、抓小偷、21根火柴、10000以内完美数

    Craps赌博游戏 游戏规则:同时扔两颗骰子,第一次扔出的点数数7或则11玩家胜,扔出2.3或则12庄家胜利,否则继续扔骰子. 以后只要扔出和第一次相同的点数玩家胜,扔出7庄家胜. 玩家每次进入有10 ...

  3. C语言------实现抢21根火柴的小游戏

    有21根火柴,两人依次取,每次每人只可取走1~4根,不能多取,也不能不取,谁先取得最后一,火柴谁输.请编写程序一个人机对弈程序,要求人先取,计算机后取,保证计算机为"常胜将军"即一 ...

  4. 21根火柴取放 c语言,趣味C语言题Word版

    <趣味C语言题Word版>由会员分享,可在线阅读,更多相关<趣味C语言题Word版(21页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ,希望对您有帮助,可双击 ...

  5. 21根火柴常胜将军c语言,常胜将军算法

    甲和乙两人玩抽取火柴的游戏,共有21根火柴.每人每次最多取4根,最少取1根火柴.如果某个人取到最后一根火柴则输了.甲让乙先抽取,结果每次都是甲赢.这是为什么? 算法分析:甲要每次都赢,那么每次甲只给乙 ...

  6. 21 根火柴游戏(常胜将军)

    问题来自头歌 任务描述 本关任务:火柴游戏. 相关知识 为了完成本关任务,你需要掌握:C 语言基础. 火柴游戏 21 根火柴游戏.现有 21 根火柴,两人轮流取,每人每次可以取 1 至 4 根,不可多 ...

  7. python 实现21根火柴游戏

    游戏规则::有21根火柴,人和计算机轮流拿,人先拿(输入拿几根)计算机后拿,每次至少1根最多4根,拿到最后一根火柴的算输,要确保计算机一定可以获胜 tips:保证计算机最后能拿到20,所以就不能取16 ...

  8. 21根火柴游戏【C语言实现】

    题目 21根火柴游戏.现有21根火柴,两人轮流取,每人每次可以取1至4根,不可多取(假如多取或者取走的数量不在合法的范围内,则要求重新输入),也不能不取,谁取最后一根火柴谁输.请编写一个程序进行人机对 ...

  9. 取木棒21根c语言,关于m根火柴 ,人机最多取n根火柴(21根火柴进阶)

    对于这个题,每个人看法不一样,理解不一样,当然程序也不一样. 此题目中,我设置的机器与人都是随机数 主要原理应该大致一样 此题中,我们的要求,拿到最后一根火柴,则算输. 拿到最后一根火柴则算输,那么我 ...

最新文章

  1. Java基础学习——多线程(线程间通信-生产者消费者代码示例)
  2. 2021中大厂php+go面试题(1)
  3. 数组越界怎么判断_算法连载之求解两个有序数组的中位数
  4. Python扩展库安装工具pip的高级用法
  5. 微服务架构工作笔记001---认识Service Mesh
  6. saefetchurl java_新浪云sae给的图片操作类
  7. 反爬机制能绕过?动态ip代理来教你怎么做
  8. 【408考研计划】计算机组成原理
  9. [OpenCV+VS2015]火焰检测算法(HSI判据)
  10. JavaWebServlet学生教师信息管理系统【JavaWeb】Servlet+Mysql+Jsp+Tomcat
  11. Teststand自定义测试报告
  12. SSM项目实战 —— 物流管理系统的实现
  13. 服务器虚拟资源池,虚拟资源池
  14. 用Python在word的指定位置插入图片(使用Python-docx包)
  15. 房贷逾期2天有影响吗
  16. Wireshark抓取网络聊天
  17. Civil 3d 路线之固定图元(AlignmentEntity)部分分析
  18. vuejs开发H5页面总结
  19. STM32的USART串口通信
  20. 1、fluentd安装

热门文章

  1. PR导出文件大小很小只有几十k且不能播放问题
  2. ceph集群状态检查常用命令
  3. Linux软件解压缩与安装
  4. 博图V14SP1组态下载时报错
  5. Android基于XMPP Smack Openfire开发IM(5)发送消息
  6. usaco Section 3.1 Shaping Regions -- 矩形切割
  7. C++中静态成员变量与静态成员函数
  8. Linux打假,中国为什么需要Linux?
  9. 华为鸿蒙生态伙伴峰会,华为鸿蒙生态加速 市场相关板块再度活跃
  10. 计算机二级软件无法运行,全国计算机等级模拟软件提示COMDLG32.OCX的解决方法