首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算当前指数?

如何计算当前指数?
EN

Stack Overflow用户
提问于 2010-05-12 18:14:46
回答 3查看 187关注 0票数 2

我已经写了一个迭代解决这个问题的算法。第一个迭代由6个步骤组成,所有后续迭代由5个步骤组成(跳过第一个步骤)。

我要计算的是从当前全局步骤开始的迭代中的当前(局部)步骤。

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

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

代码语言:javascript
复制
if(currentStep <= 6)
        iteration = 1;
    else
        iteration = floor((currentStep - 7)/5) + 2;
    end

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

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

代码语言:javascript
复制
[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]

如果有人能帮助我找到一个特定问题的解决方案,我将不胜感激。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-12 19:00:09

以下是python的解决方案:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2010-05-12 19:14:25

代码语言:javascript
复制
local_step = [1 mod([0:39],5)+2]
票数 3
EN

Stack Overflow用户

发布于 2010-05-12 18:40:24

请检查以下内容:

代码语言:javascript
复制
if(currentStep <= 6)  
{localStep = currentStep;}  
else  
{localStep = currentStep - ((iteration - 1) * 5);}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2817794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档