• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > 约瑟夫问题的Python和C++求解方法

约瑟夫问题的Python和C++求解方法

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了约瑟夫问题c++,约瑟夫问题c++代码,求解约瑟夫问题,约瑟夫环问题c++,约瑟夫问题python等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

么是约瑟夫问题?
约瑟夫问题是一个有趣的数学游戏,游戏规则如下:
1、N个人围成一个圈,编号从1开始,依次到N。
2、编号为M的游戏参与者开始报数,报数从1开始,后面的人报数接龙,直到K为止,报数为K的人将出局。
3、出局者的下一个玩家接着从1开始报数,如此循环,直到剩下一个玩家时游戏结束,这个玩家就是游戏获胜者。
那么问题来了,哪个编号是游戏获胜者呢?
下面通过简单的几行python代码来解决这个问题:

#!/usr/bin/env python 
# Joseph Problem 
def joseph(total, begins, count): 
  queue = range(1, total + 1) 
  death = (begins + count - 2) % len(queue) 
  for times in range(total - 1): 
    print 'out: ', queue[death] 
    del queue[death] 
    death = (death + count -1) % len(queue) 
  print 'survivor: ', queue[0] 
</div>

joseph()函数中,参数total即上面提到的N,begins即M,count及K,每次循环报数out一个编号,最后剩下的survivor便是游戏获胜者。

而C++的通常实现方法如下:

#include <iostream>
using namespace std;
void main()
{
 int N=0,C=0;
 cout<<"Please enter the number of people:N=";
 cin>>N;
 cout<<"Please enter:C=";
 cin>>C;
 int i=0,j=0,n=N,s=0;
 int *a=new int [N];
 for (i=0;i<N;i++)
 {
 a[i]=1;
 }

 while(0!=n)
 {
 s+=a[j];
 if(C==s)
 {
  a[j]=0;
  s=0;
  --n;
  if(0!=n)
  {
  cout<<j+1<<"->";
  }
  else
  {
  cout<<j+1<<endl;
  }
 }
 j=(j+1)%N;
 }
 delete []a;
}

</div>

这是C++语言常见的机试题目,以下程序实现从控制台输入人数N,C并将剔除出队列的人员编号按顺序输出到控制台上。

</div>

您可能想查找下面的文章:

  • 约瑟夫问题的Python和C++求解方法

相关文章

  • Python编写电话薄实现增删改查功能
  • Python随机生成带特殊字符的密码
  • Python学习笔记之常用函数及说明
  • 编写Python小程序来统计测试脚本的关键字
  • bpython 功能强大的Python shell
  • Python中编写ORM框架的入门指引
  • Python pickle模块用法实例分析
  • Python文件夹与文件的操作实现代码
  • Python 可爱的大小写
  • python中字符串类型json操作的注意事项

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python遍历文件夹和读写文件的实现方法
    • PHP魔术方法__ISSET、__UNSET使用实例
    • Python urllib模块urlopen()与urlretrieve()详解
    • python的即时标记项目练习笔记
    • 玩转python selenium鼠标键盘操作(ActionChains)
    • python将文本转换成图片输出的方法
    • Python实现把json格式转换成文本或sql文件
    • 浅谈python中的getattr函数 hasattr函数
    • Python实现的Kmeans++算法实例
    • 一波神奇的Python语句、函数与方法的使用技巧总结

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有