Формула для возврата X или Y по спирали сетки, но меняется только направление? - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь найти две формулы, которые будут возвращать либо X, либо Y из n-ввода.Эти координаты должны быть на спиральной сетке, аналогичной спирали Улама, но n означает не положение на спирали, а только изменение направления.

n = 1, return 0,1;
n = 2, return 1,1;
n = 3, return 1,-1;
n = 4, return -1,-1;
n = 5, return -1,2;
n = 6, return 2,2;
n = 7, return 2,-2;
n = 8, return -2,-2;

Должны быть две отдельные формулы, отдельныеn и получить X и еще один, чтобы получить Y. Фактически это только в одной строке для X или Y с n в качестве ввода положения цикла.

1 Ответ

1 голос
/ 07 апреля 2019

Посмотрите на значения X:

0 1 1 -1 -1 2 2 -2 -2 3 3 -3 -3 ...

Выполните очевидную группировку и сравните с n:

n: 1   2  3  4  5   6  7  8  9   10 ...
x: 0   1  1 -1 -1   2  2 -2 -2    3 ...

Добавьте еще одну строку для k = (n + 2) / 4 (округление вниз, я не знаю, как указать функцию floor в ascii) и m = n mod 4:

k: 0   1  1  1  1   2  2  2  2    3 ...
m: 1   2  3  0  1   2  3  0  1    2

Этого должно быть достаточно, чтобы показать, как визуализировать x на любом языке, который вам больше нравится.

И тогда y легко: y (n) = x (n + 1)

...