C#,21根火柴棍问题(21 Matchticks Problem)的算法与源代码
一、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)的算法与源代码相关推荐
- c语言假设有21根火柴棍,10道火柴棍趣味智力题,据说全对的都是天才!
原标题:10道火柴棍趣味智力题,据说全对的都是天才! 各位小朋友及大朋友们,晚上好!欢迎来到科学有意思栏目.发现身边有趣的科学现象,激发孩子好奇心! 相信很多80后的朋友们,小时候一定和同学玩过各种趣 ...
- Craps赌博游戏、百钱白鸡、七星彩选号、抓小偷、21根火柴、10000以内完美数
Craps赌博游戏 游戏规则:同时扔两颗骰子,第一次扔出的点数数7或则11玩家胜,扔出2.3或则12庄家胜利,否则继续扔骰子. 以后只要扔出和第一次相同的点数玩家胜,扔出7庄家胜. 玩家每次进入有10 ...
- C语言------实现抢21根火柴的小游戏
有21根火柴,两人依次取,每次每人只可取走1~4根,不能多取,也不能不取,谁先取得最后一,火柴谁输.请编写程序一个人机对弈程序,要求人先取,计算机后取,保证计算机为"常胜将军"即一 ...
- 21根火柴取放 c语言,趣味C语言题Word版
<趣味C语言题Word版>由会员分享,可在线阅读,更多相关<趣味C语言题Word版(21页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ,希望对您有帮助,可双击 ...
- 21根火柴常胜将军c语言,常胜将军算法
甲和乙两人玩抽取火柴的游戏,共有21根火柴.每人每次最多取4根,最少取1根火柴.如果某个人取到最后一根火柴则输了.甲让乙先抽取,结果每次都是甲赢.这是为什么? 算法分析:甲要每次都赢,那么每次甲只给乙 ...
- 21 根火柴游戏(常胜将军)
问题来自头歌 任务描述 本关任务:火柴游戏. 相关知识 为了完成本关任务,你需要掌握:C 语言基础. 火柴游戏 21 根火柴游戏.现有 21 根火柴,两人轮流取,每人每次可以取 1 至 4 根,不可多 ...
- python 实现21根火柴游戏
游戏规则::有21根火柴,人和计算机轮流拿,人先拿(输入拿几根)计算机后拿,每次至少1根最多4根,拿到最后一根火柴的算输,要确保计算机一定可以获胜 tips:保证计算机最后能拿到20,所以就不能取16 ...
- 21根火柴游戏【C语言实现】
题目 21根火柴游戏.现有21根火柴,两人轮流取,每人每次可以取1至4根,不可多取(假如多取或者取走的数量不在合法的范围内,则要求重新输入),也不能不取,谁取最后一根火柴谁输.请编写一个程序进行人机对 ...
- 取木棒21根c语言,关于m根火柴 ,人机最多取n根火柴(21根火柴进阶)
对于这个题,每个人看法不一样,理解不一样,当然程序也不一样. 此题目中,我设置的机器与人都是随机数 主要原理应该大致一样 此题中,我们的要求,拿到最后一根火柴,则算输. 拿到最后一根火柴则算输,那么我 ...
最新文章
- Java基础学习——多线程(线程间通信-生产者消费者代码示例)
- 2021中大厂php+go面试题(1)
- 数组越界怎么判断_算法连载之求解两个有序数组的中位数
- Python扩展库安装工具pip的高级用法
- 微服务架构工作笔记001---认识Service Mesh
- saefetchurl java_新浪云sae给的图片操作类
- 反爬机制能绕过?动态ip代理来教你怎么做
- 【408考研计划】计算机组成原理
- [OpenCV+VS2015]火焰检测算法(HSI判据)
- JavaWebServlet学生教师信息管理系统【JavaWeb】Servlet+Mysql+Jsp+Tomcat
- Teststand自定义测试报告
- SSM项目实战 —— 物流管理系统的实现
- 服务器虚拟资源池,虚拟资源池
- 用Python在word的指定位置插入图片(使用Python-docx包)
- 房贷逾期2天有影响吗
- Wireshark抓取网络聊天
- Civil 3d 路线之固定图元(AlignmentEntity)部分分析
- vuejs开发H5页面总结
- STM32的USART串口通信
- 1、fluentd安装