约瑟夫环Python描述
首先是比较容易看得懂的。。

原题:

 用户输入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 算法分析
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

约瑟夫环Python描述

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭