繁体   English   中英

如何应用模以使索引永远不会为 0?

[英]How do I apply the modulo such that an index is never 0?

假设我索引一周中的几天,从 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,并在外加 1。

( i + 6 ) % 7 + 1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM