arrays - 试图找到算法或数学?

标签 arrays algorithm math

以下面的路径为例,它有 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]

如果您查看路径示例图片并按照每个步骤进行操作,您将在路径下的数组值中看到这种情况,红色框突出显示所选路径,希望它更清楚,问题是,是否有可以做到这一点的算法?

Pathway Example 2

最佳答案

每个数组单元格都包含您选择的单元格的距离加一,是吗?如果是这样,您可以简单地用 for 语句解决:

for each index of array:
    array[index] = abs(index - selectedIndex)+1

其中 selectedIndex 是选择的索引,abs(...) 是模函数。

你的循环数组的解决方案更快,因为你只需要显示数字,你可以根据 selectedIndex 和以前的限制计算新的限制。该解决方案只提供了更少的内存。

关于arrays - 试图找到算法或数学?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25947878/

相关文章:

php - PHP 关联数组中的项目不能以数字方式访问(即通过索引)吗?

algorithm - 关于申卡斯坦算法的资源

objective-c - 如何将数字范围从 0-200 转换为 1-5 范围

c - 如何制作结构数组

iOS 二分搜索代码在超过 256 项时崩溃

c - 我应该如何使用包含数组的结构进行 malloc/realloc?

javascript - 创建树结构

c# - 无向图,检查节点之间是否存在路径

math - Go:如何划分巨大的数字?

flash - 随机数 绝对值 1 或 -1