C#,21根火柴棍问题(21 Matchticks Problem)的算法与源代码
2023-09-11 14:15:48 时间
一、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#中配置文件的使用
- C#中string.Format()和ToString()格式化方法
- C#数据结构与算法揭秘十
- C#实现以太仿DApp合约编译、部署
- 《C#高级编程》学习笔记----c#内存管理--栈VS堆
- C# Winform 学习(四)
- C#设计模式——模板方法(Template Method)
- C#操作XML(带命名空间)
- 重新整理数据结构与算法(c#)——算法套路普利姆算法[二十九]
- 重新整理数据结构与算法(c#)——算法套路贪心算法[二十八]
- 重新整理数据结构与算法(c#)—— 二叉树排序树[二十二]
- 重学c#系列——对c#粗浅的认识(一)
- 重新整理数据结构与算法(c#)——算法套路迪杰斯特拉算法[三十一]
- 重新整理数据结构与算法(c#)——KMP破解[二十七]
- 重新整理数据结构与算法(c#)—— 算法套路分治算法[二十五]
- 重新整理数据结构与算法(c#)—— 顺序存储二叉树[十九]
- 重新整理数据结构与算法(c#)—— 图的深度遍历和广度遍历[十一]
- C#中comboBox控件的一些基本用法小结
- C# 获取当前时间
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
- 编程笔试(解析及代码实现):国内各大银行(招商银行/浦发银行等)在线笔试常见题目(猴子吃桃/字符串逆序输出/一段话输出字的个数/单词大小转换等)及其代码实现(Java/Python/C#等)之详细攻略
- (二十)c#Winform自定义控件-有后退的窗体-HZHControls