gpt4 book ai didi

java - 将唯一点映射到唯一整数索引

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:58 25 4
gpt4 key购买 nike

我根本不熟悉坐标系或处理这些事情的大部分数学。我想要做的是取一个点 (x,y),并在一维数组中找到它的位置,使其遵循以下规则:

(0,2)->0 (1,2)->1 (2,2)->2
(0,1)->4 (1,1)->5 (2,1)->6
(0,0)->8 (1,0)->9 (2,0)->10

箭头显示坐标应映射到的值。请注意,在每一行之后都会跳过一个索引。我认为它最终会成为一个相当微不足道的解决方案,但我找不到任何与此类似的问题,而且我自己也没有任何运气想出主意。我确实知道二维数组的宽度和高度。感谢您的帮助!


我的问题可能含糊不清或使用了错误的术语,我深表歉意。

我知道坐标 (0,0) 将是左下角的位置。我还知道左上角的坐标应该放在索引 0 处。每个新行都会跳过一个索引 1。坐标系的大小各不相同,但我知道行数和列数。

最佳答案

第一步,将值颠倒过来,保持圆点不变:

(0,2)->8 (1,2)->9 (2,2)->10
(0,1)->4 (1,1)->5 (2,1)->6
(0,0)->0 (1,0)->1 (2,0)->2

您会注意到 y影响输出的因素为 4 和 x 1 倍。

因此我们得到一个非常简单的4y + x .

现在回到原来的状态,您会注意到转换是 (x,y) <- (x,2-y) (也就是说,如果我们用这个变换对上面的每个点进行变换,我们就得到了原来需要的映射)。

因此,将其代入等式,我们得到 (2-y)*4 + x .

现在这是特定于 3x3 的,但我相信您可以通过用变量替换 2 和 4 来概括它。

关于java - 将唯一点映射到唯一整数索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16819113/

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