约瑟夫环Python描述

原创 2006年06月22日 16:43:00
首先是比较容易看得懂的。。

原题:

 用户输入M,N值,N个人围成一个环,从0号人开始数,数到M,那个人就退出游戏,直到最后一个人
求最后一个剩下的人是几号?
(约瑟夫环问题 Josephus)

def solve(n,m):
    #自动身成列表,从0开始 到n-1
    list=range(n)
    m-=1
    k=m%n;
    while(len(list) >1):
        del list[k]
        k= (k+m) % len(list)
    return list[0]

#然后是非常优美的算法


def game(n,m):
    if n==1:
        winner=0
    else:
        pre_winner=game(n-1,m);
        winner=(pre_winner+m)%n
    return winner;

相关文章推荐

约瑟夫环问题python解法

约瑟夫环问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到k的那个人被杀掉;他的下一个人又从1开始报数,数到k的那个人又被杀掉;依此规律重复下去,直到...

数据结构--约瑟夫环算法描述

  • 2011年01月02日 11:41
  • 26KB
  • 下载

约瑟夫环问题的一种描述

#include"stdio.h" #include"malloc.h" //1.元素类型,结点类型和指针类型 typedef struct LNode         //定义结构体, { ...

Python实现约瑟夫问题

约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数(包括自己在内,如m为1,则变为挨个自杀),数到m的那个人出列;他的下一个人又从1...

约瑟夫环数据结构

  • 2017年11月17日 23:06
  • 1KB
  • 下载

数据结构实验报告 约瑟夫环

  • 2017年11月10日 07:23
  • 204KB
  • 下载

解题笔记(10)——约瑟夫环问题

问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。           思路:容易想到的就是用环链表来做,构建一个环链表,每个结点的...

约瑟夫环问题

  • 2016年07月05日 01:41
  • 771B
  • 下载

数据结构——制作约瑟夫环

  • 2015年05月17日 17:49
  • 47KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:约瑟夫环Python描述
举报原因:
原因补充:

(最多只允许输入30个字)