python3约瑟夫环问题
Posted 阅历即魅力
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3约瑟夫环问题相关的知识,希望对你有一定的参考价值。
问题描述:n个人围成一个圈,从第一个人开始数1,数到第k个出局,然后下一个人继续从1数,求出局人编号
思路:将所有人编号放到数组里,一个人出局后,下一个人加上k对数组长度求余,得出下一个要删除的编号。
def Joseph(n,k): a = [x for x in range(1, n+1)] num = k for i in range(n): print(a[num%len(a)-1]) del a[num%len(a)-1] if len(a)==0: print(‘ok‘) else: num = (num + k-1) % len(a)
k的值可以大于n,测试了下应该没问题。
看了好多网上的例子,这道题的解法也很多,感觉这个还是比较能理解的。
以上是关于python3约瑟夫环问题的主要内容,如果未能解决你的问题,请参考以下文章