以下面的路径为例,它有 7 个路径,我创建了一个 7 的数组来为每个路径保存一个值,数组的初始值如下:
[1,2,3,4,5,6,7] (see picture: top row array values under the paths where start is)
如果用户随机选择路径 5,它是数组索引 [4],则返回的值将为 5.. 到目前为止一切顺利。
现在有点困惑,因为用户选择了路径 5。我需要为下一个随机选择更改数组值,我总是需要当前选择的路径(在本例中为 5)现在有一个数组值从 1 开始向右和向左计数,数组值现在应该如下所示
[5,4,3,2,1,2,3]
如果您查看路径示例图片并按照每个步骤进行操作,您将在路径下的数组值中看到这种情况,红色框突出显示所选路径,希望它更清楚,问题是,是否有可以做到这一点的算法?
最佳答案
每个数组单元格都包含您选择的单元格的距离加一,是吗?如果是这样,您可以简单地用 for
语句解决:
for each index of array:
array[index] = abs(index - selectedIndex)+1
其中 selectedIndex
是选择的索引,abs(...)
是模函数。
你的循环数组的解决方案更快,因为你只需要显示数字,你可以根据 selectedIndex 和以前的限制计算新的限制。该解决方案只提供了更少的内存。
关于arrays - 试图找到算法或数学?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25947878/