Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何应用模,使索引永远不为0?_Arrays_For Loop_Modulo - Fatal编程技术网

Arrays 如何应用模,使索引永远不为0?

Arrays 如何应用模,使索引永远不为0?,arrays,for-loop,modulo,Arrays,For Loop,Modulo,假设我对一周中的几天进行索引,从1开始为周一,从7开始为周日。我有四个数组x,y,z和r,它们存储一周中每一天的变量。例如,x[1]是周一获得的收入金额,y[7]是周日结转的收入金额,z[6]是周六节省的收入金额。 周一的总收入为x[1]+y[7]+z[6]=r[1]。同样,周二的总收入为x[2]+y[1]+z[6]=r[2] 我正在尝试编写一个类似这样的for循环: for i in 1:7 x[i] + y[i-1] + z[i-2] = d[i] end 其中,当i=1和i=2时

假设我对一周中的几天进行索引,从1开始为周一,从7开始为周日。我有四个数组x,y,z和r,它们存储一周中每一天的变量。例如,x[1]是周一获得的收入金额,y[7]是周日结转的收入金额,z[6]是周六节省的收入金额。 周一的总收入为x[1]+y[7]+z[6]=r[1]。同样,周二的总收入为x[2]+y[1]+z[6]=r[2]

我正在尝试编写一个类似这样的for循环:

for i in 1:7
    x[i] + y[i-1] + z[i-2] = d[i]
end
其中,当i=1和i=2时,索引不会小于或等于0(我的索引从1开始,如果结果为0,则会出现越界错误)

我试着用模函数来辅助这一点,但我意识到在某些情况下,无论我尝试什么值,我都会得到0。例如,添加7然后应用模7可确保当i=1时z[i-2]为z[6],但当i=1时给出y[i-1]=y[0]:

for i in 1:7
        x[(i+7)%7] + y[(i-1+7)%7] + z[(i-2+7)%7] = d[(i+7)%7]
end

是否有有效的解决方案?

在模内添加6而不是7,并在模外添加一个


(i+6)%7+1

但当i=1时,它不会给出(1+7)%7+1=8%7+1=1+1=2?从基于0的索引开始。基于1的索引使用哪种语言?我使用的是Julia,不幸的是,我不能使用其他编程语言。在0处启动for循环有效吗?所以在模内添加6而不是7。这将为您提供一个基于0的索引+7,它将始终映射到数组中基于0的合法索引。仍然在之后添加1以获得基于1的索引。明白了。谢谢