C#约瑟夫环问题算法
/// <summary>
/// 约瑟夫环问题算法
/// </summary>
/// <param name="total">总人数</param>
/// <param name="start">开始报数的人</param>
/// <param name="alter">要出列的人</param>
/// <returns>返回一个int类型的一维数组</returns>
static int[] Jose(int total, int start, int alter)
{
int j, k = 0;
//intCounts数组存储按出列顺序的数据,以当结果返回
int[] intCounts = new int[total + 1];
//intPers数组存储初始数据
int[] intPers = new int[total + 1];
//对数组intPers赋初值,第一个人序号为0,第二人为1,依此下去
for (int i = 0; i < total; i++)
{
intPers[i] = i;
}
//按出列次序依次存于数组intCounts中
for (int i = total; i >= 2; i--)
{
start = (start + alter - 1) % i;
if (start == 0)
start = i;
intCounts[k] = intPers[start];
k++;
for (j = start + 1; j <= i; j++)
intPers[j - 1] = intPers[j];
}
intCounts[k] = intPers[1];
//结果返回
return intCounts;
}

C#约瑟夫环问题算法的更多相关文章
- 约瑟夫环问题算法(M)
http://blog.csdn.net/zhuimengzh/article/details/6727221 用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输出.写出C程序 ...
- C# 约瑟夫环算法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 小小c#算法题 - 12 - Joseph Circle(约瑟夫环)
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围.从编号为k的人开始报数(从1开始报数),数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又 ...
- 3,java数据结构和算法:约瑟夫环出队顺序, 单向环形链表的应用
什么是约瑟夫环? 就是数小孩游戏: 直接上代码: 要实现这个,只需要理清思路就好了 孩子节点: class Boy{ int no;//当前孩子的编码 Boy next; // 下一节点 public ...
- C语言数组实现约瑟夫环问题,以及对其进行时间复杂度分析
尝试表达 本人试着去表达约瑟夫环问题:一群人围成一个圈,作这样的一个游戏,选定一个人作起点以及数数的方向,这个人先数1,到下一个人数2,直到数到游戏规则约定那个数的人,比如是3,数到3的那个人就离开这 ...
- 约瑟夫环(N个人围桌,C语言,数据结构)
约瑟夫环问题(C语言.数据结构版) 一.问题描述 N个人围城一桌(首位相连),约定从1报数,报到数为k的人出局,然后下一位又从1开始报,以此类推.最后留下的人获胜.(有很多类似问题,如猴子选代王等等, ...
- 关于递推算法求解约瑟夫环问题P(n,m,k,s)
一. 问题描述 已知n个人,分别以编号1,2,3,...,n表示,围坐在一张圆桌周围.从编号为k的人开始报数1,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列:依此规律重复下去, ...
- King's Game---hdu5643(约瑟夫环)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5643 约瑟夫环问题的原来描述为,设有编号为1,2,……,n的n(n>0)个人围成一个圈,从 ...
- cdoj525-猴子选大王 (约瑟夫环)
http://acm.uestc.edu.cn/#/problem/show/525 猴子选大王 Time Limit: 3000/1000MS (Java/Others) Memory Li ...
- 组合数学--约瑟夫环问题 Josephus
约瑟夫斯问题(有时也称为约瑟夫斯置换),是一个出现在计算机科学和数学中的问题.在计算机编程的算法中,类似问题又称为约瑟夫环. 有n个囚犯站成一个圆圈,准备处决.首先从一个人开始,越过k-2个人(因为第 ...
随机推荐
- oracle、达梦数据库、MySQL数据创建表与字段注释
/**1.oracle注释*//*表本身注释*/comment on table 表名 is '注释信息';/*字段注释*/comment on column 表名.字段名 is '注释信息';/*实 ...
- [CF1325E] Ehab's REAL Number Theory Problem
Ehab's REAL Number Theory Problem 题目描述 You are given an array $ a $ of length $ n $ that has a speci ...
- 文心一言 VS 讯飞星火 VS chatgpt (155)-- 算法导论12.3 2题
二.用go语言,假设通过反复向一棵树中插人互不相同的关键字来构造一棵二叉搜索树.证明:在这棵树中查找关键字所检查过的结点数目等于先前插入这个关键字所检查的结点数目加 1. 文心一言: 为了证明这个结论 ...
- NLP项目实战02:英文文本识别
简介: 欢迎来到本篇文章!今天我们将讨论一个新的自然语言处理任务--英文短文识别.具体而言,即通过分析输入的英文文本来判断其是比较消极的还是比较积极的. 展示: 1.项目界面 如下所示是项目启动后用户 ...
- 设置ElementUI的el-table组件表格内容居中
方式一:比较麻烦 // 在每一个el-table-column中添加align='center'属性 <el-table-column prop='createTime' label='创建时间 ...
- LeetCode 503:下一个更大的元素|| (单调栈 or 线段树)
解题思路: 1.单调栈:因为是循环数组,因此把数组复制三遍,ans 数组复制为2倍长,维护一个单调非递增的栈,栈保存的元素是元组(a[i] , i ),如果后面的值有比栈顶元素的值大,栈顶元素出栈,更 ...
- JS的对象
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 持续集成Jenkins
一.简单慨念 持续集成(Continuous integration,简称 CI),随着近几年的发展,持续集成在项目中 得到了广泛的推广和应用. 软件集成就是用一种较好的方式,使多种软件的功能集成到一 ...
- 从零玩转文件上传之七牛云-qiniufileupload
title: 从零玩转文件上传之七牛云 date: 2022-03-27 02:21:00.478 updated: 2022-04-10 14:13:35.426 url: https://www. ...
- 微软成为PostgreSQL主要贡献者
微软成为PostgreSQL主要贡献者 微软对PostgreSQL贡献的很多新功能都来自于客户在使用微软Azure上的PostgreSQL管理实例数据库,所以这些新功能都来自于真实的客户需求 微软对P ...