gpt4 book ai didi

java - 将数字映射到 N 维网格/数组

转载 作者:行者123 更新时间:2023-12-01 17:37:50 24 4
gpt4 key购买 nike

例如,假设我有一个 3 维网格/数组,其中轴从 1 到 1000(或等效的 0 到 999)。该数组有 1000^3 个元素。

我想使用 Java 以确定的方式将 0 到 1000^3 范围内的单个整数映射到该数组。优选地,该解决方案适用于任何维度 N。

这是此类函数的伪代码示例:

public Vector<int> nthElement( Vector<int> dims, int n )

因此,如果我像 nthElement([1000, 1000, 1000], 0) 那样调用它,它将返回 [0, 0, 0] nthElement([1000, 1000, 1000], 1001) 将返回类似 [999, 1, 0] 的内容。

解决方案应该针对 N 维,而不是像我的示例中那样针对 3 维。

最佳答案

这是正确的映射算法:

map([X, Y, Z, T, ...], N) = [
N mod X,
N div X mod Y,
N div X div Y mod Z,
N div X div Y div Z (mod ...)?
...
]

或者递归

map([X, Y, Z, T, ...], N) = [N mod X, map([Y, Z, T, ...], N div X)]

其中 A div B 是楼层 (A/B)。

关于java - 将数字映射到 N 维网格/数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4518570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com