【发布时间】:2010-08-20 19:18:27
【问题描述】:
假设一个 3 维不规则矩阵,其中y = 1.5(x) and z = .5(y)。
进一步假设一个对象从0,0,0 开始,并且必须至少在两个维度上正向移动,并且必须在所有三个维度上移动(x+1, y+1, z-1 可以,x+1, y+1, z=z 不行)。它可以移动任意数量的“空格”,但必须在所有方向上移动相同的数量。
允许对象环绕(x(max +1) = x(0))。
将所述对象从其起始位置移动到(0, max(y), .5(max(z))) 对于z,向上舍入分数(4、6、3 矩阵中的终点变为 0、6、2)
输入是一个整数 (X)。
输出是您将要进行的移动列表(显示您移动的空间数量是额外的功劳)
示例输入/输出:
X = 4
Y = 6 //(4 * 1.5)
Z = 3 // 6 / 2
0, 0, 0 //Start
2, 5, 2 // (+2, -2, +2)
1, 2, 2 // (+4, +4, +4)
3, 4, 0 // (+2, +2, -2)
1, 6, 2 // (-2, +2, +2)
3, 3, 3 // (-3, -3, -3)
1, 5, 1 // (-2, +2, -2)
0, 6, 2 // (-1, +1, -1)
7 Moves.
【问题讨论】:
-
所以无论步骤有多优化,“赢家”都是最短的来源?
-
正确。只要答案是正确的,移动的数量无关紧要。我只是想知道花了多少,因为我就是那种人......
-
这看起来很奇怪而且毫无意义。这个问题有什么背景故事,有什么能引起我们兴趣的吗?
-
您的一些示例运动矢量似乎违反了“至少在二维中正向移动”规则
-
矩阵中的
x等于什么?这是否意味着结尾x组件始终为0?你认真地需要澄清一切是什么。输入是什么,如何获得最大值,如何获得终点?
标签: language-agnostic code-golf