替代"而> 127减去128"

时间:2018-01-21 06:53:02

标签: variables lua

我正在编写一种算法,根据输入数字生成0到127之间的4个值。它看起来像这样:

value = {}
input = number
mod = input * 2 - 1
value[1] = input - 1
value[2] = input - 1 + mod
value[3] = input - 1 + mod*2
value[4] = input - 1 + mod*3

为了确保对于较大的数字,结果数字保持在0到127之间,我已经实现了这一点:

for i = 1, 4 do
while value[i] > 127 do
value[i] = value[i] - 128
end
end

这可以按预期工作,但随着生成的数字变大,此方法变得非常慢。例如,如果输入的数字是400000,则值[4]将变为2799996.使用我的方法将其减少到低于127的数字需要相当长的时间。有一个更好的方法吗? 任何和所有建议将不胜感激!

1 个答案:

答案 0 :(得分:1)

Modulo解决了我的问题。我不知道这是件事;我最好重拍数学。 while循环不在窗口中,新代码如下所示:

for i = 1, 4 do
value[i] = value[i] % 128
end

就这么简单,谢谢Sami Kuhmonen!