约瑟夫环问题(Josephus_problem)
2012-09-16 20:55
525 查看
递归:
循环:
列表推倒:
In Mathematica :
def J(n,x): return 0 if n==1 else (J(n-1,x)+x-1) % n
循环:
def J(n,x): k=0 for i in range(2,n+1): k=(k+x)%i return k+1
列表推倒:
def J(n,x): return reduce(lambda t, _: (t[(x-1) % len(t):] + t[:(x-1) % len(t)])[1:], range(n-1), range(1, n+1))
def J(n,x): li=range(1,n+1) while li: print '\t'.join('1' if i in li else '0' for i in range(1,n+1)) li=(lambda t: li[t:]+li[:t])( (x-1)%len(li) )[1:] J(10, 5) #Out: #1 1 1 1 1 1 1 1 1 1 #1 1 1 1 0 1 1 1 1 1 #1 1 1 1 0 1 1 1 1 0 #1 1 1 1 0 0 1 1 1 0 #1 0 1 1 0 0 1 1 1 0 #1 0 1 1 0 0 1 1 0 0 #1 0 1 1 0 0 1 0 0 0 #0 0 1 1 0 0 1 0 0 0 #0 0 1 0 0 0 1 0 0 0 #0 0 1 0 0 0 0 0 0 0
In Mathematica :
相关文章推荐
- 14.约瑟夫环问题[JosephusProblem]
- 约瑟夫环问题(josephus problem)详解
- 约瑟夫环问题——Josephus Problem
- Josephus Problem 约瑟夫环问题的讨论
- 约瑟夫环问题(Josephus Problem)C程序实现
- Josephus问题(约瑟夫环)
- 约瑟夫环问题(Josephus)的C解法
- 约瑟夫环问题(Josephus)
- 约瑟夫问题(Josephus Problem)
- 约瑟夫环(Josephus)问题
- 约瑟夫问题Josephus problem
- 约瑟夫环问题(Josephus)
- 约瑟夫问题(Josephus Problem)4:第k个出列的人是谁
- [算法解决]约瑟夫环问题 Josephus
- 组合数学--约瑟夫环问题 Josephus
- [链表]约瑟夫环问题 Josephus
- 约瑟夫问题(Josephus problem)的一点思考
- Josephus again HDU - 3089 (约瑟夫环问题)
- 约瑟夫问题(Josephus Problem)
- 约瑟夫问题(Josephus problem)1:出列的序列