zoukankan      html  css  js  c++  java
  • 约瑟夫问题的迭代意义

    约瑟夫问题的迭代意义

    '''
    我们想求在n个人时候的答案,n个人中第一个被去除的是索引为m%n的人
    假设我们知道了n-1个人时候答案为x
    那么n个人的时候的答案是==> m%n后面数到第x个的数即 (m%n+x)%n = (m+x) % n
    假设m=3
    当1个人时,答案为0
    
    当2个人时,由于我们知道了1个人时的答案是0
    2个人的安全位置在 (m%2 +0)%2 = (m +0) % 2 = 1
    
    当3个人时,由于我们知道了2个人时的答案是 (m+0) % 2 = 1
    3个人的安全位置为(m % 3 + 1 )%3 = 2
    
    当4个人时,由于我们知道了3个人时的答案是 2
    所以,4个人的安全位置为(m % 4 + 2) % 4 = 0
    
    当5个人时,由于我们知道了4个人时的答案是 0
    所以,5个人的安全位置为(m % 5 + 0) % 5 = 3
    
    
    res = 0
    for i in range(2,n+1):
    	res = (m + res) %i
    return res
    '''
    
  • 相关阅读:
    C++primer习题3.13
    Indesign技巧
    《转载》虚函数在对象中的内存布局
    C++new失败后如何处理
    sizeof的用法
    转载 C++中虚继承防止二义性
    字符串反转
    回文写法
    C++术语
    QT+VS2008
  • 原文地址:https://www.cnblogs.com/Ghostant/p/12597975.html
Copyright © 2011-2022 走看看