代码之家  ›  专栏  ›  技术社区  ›  Niko Gamulin

如何计算当前指数?

  •  2
  • Niko Gamulin  · 技术社区  · 14 年前

    我写了一个迭代解决问题的算法。第一次迭代由6个步骤组成,接下来的所有迭代由5个步骤组成(跳过第一步)。

    我要计算的是当前全局步骤迭代中的当前(本地)步骤。

    例如,如果总共有41个步骤,这意味着有8个迭代: 从1到6的指数属于第一次迭代 从7到11的索引属于第二次迭代 …

    为了计算当前迭代,我编写了以下代码:

    if(currentStep <= 6)
            iteration = 1;
        else
            iteration = floor((currentStep - 7)/5) + 2;
        end
    

    问题仍然存在于计算局部步骤中。 在第一次迭代中,执行的步骤是:1、2、3、4、5、6 在以下所有迭代中,执行步骤是2、3、4、5、6

    因此,必须要做的是转换全局步骤的数组

    [1 2 3 4 5 6 7 8 9 10 11 12 13 ... 41] 
    

    到本地步骤数组中

    [1 2 3 4 5 6 2 3 4 5 6 2 3 ... 6] .

    如果有人能帮我找到解决某个问题的方法,我将不胜感激。

    谢谢您!

    3 回复  |  直到 14 年前
        1
  •  2
  •   Olivier Verdier    14 年前

    下面是Python中的解决方案:

    L = range(1,42) # so L = [1,2,...,41]
    s = [(i-2)%5+2 for i in L]
    # adjust for the first step:
    s[0]=1
    # now s = [1,2,3,4,5,6,2,3,4,...,5,6]
    
        2
  •  3
  •   James    14 年前
    local_step = [1 mod([0:39],5)+2]
    
        3
  •  0
  •   Himadri    14 年前

    检查一下:

    if(currentStep <= 6)  
    {localStep = currentStep;}  
    else  
    {localStep = currentStep - ((iteration - 1) * 5);}