Обратные инженерные числовые паттерны - PullRequest
2 голосов
/ 10 июня 2019

Мне сложно найти общее уравнение или функцию для некоторых паттернов, сгенерированных с использованием 4 переменных C, x, y и z.M - это трехмерная матрица формы (p, q, C), содержащая эти значения, где p и q - это несколько больших, но, вероятно, не относящихся к делу целых чисел.

Ниже показан небольшой выбор шаблонов.Кто-нибудь может увидеть, на что может быть похожа функция f(C, x, y, z)?Обратите внимание, что значения C, x, y и z не ограничиваются приведенными ниже, но могут быть любыми целыми числами.

C = 1
    (x =) 0      0      0      0      0      0      0      0      0
    (y =) 0      1      2      3      4      5      6      7      8
    (z =) 0      0      0      0      0      0      0      0      0

   M = [[[0]], [[1]], [[2]], [[3]], [[4]], [[5]], [[6]], [[7]], [[8]], ...]
   ---------------------------------------------------------------------------
    (x =) 1      1      1      1      1      1      1      1      1
    (y =) 0      1      2      3      4      5      6      7      8
    (z =) 0      0      0      0      0      0      0      0      0

   M = [[[0]], [[1]], [[2]], [[3]], [[4]], [[5]], [[6]], [[7]], [[8]], ...]

C = 2
    (x =) 0      0      0      0      0      0      0      0      0      0
    (y =) 0      0      1      1      2      2      3      3      4      4
    (z =) 0      1      0      1      0      1      0      1      0      1

   M = [[[0,     2],   [1,     3]], [[4,     6],   [5,     7]], [[8,    10], ...]
   ---------------------------------------------------------------------------------
    (x =) 1      1      1      1      1      1      1      1      1      1
    (y =) 0      0      1      1      2      2      3      3      4      4
    (z =) 0      1      0      1      0      1      0      1      0      1

   M = [[[0,     4],   [1,     5]], [[2,     6],   [3,     7]], [[8,    12], ...]

C = 3
    (x =) 0      0      0      0      0      0      0      0      0      0      0      0
    (y =) 0      0      0      1      1      1      2      2      2      3      3      3
    (z =) 0      1      2      0      1      2      0      1      2      0      1      2

   M = [[[0,     2,     4],   [1,     3,     5]], [[6,     8,    10],   [7,     9,    11]], ...] 
   -----------------------------------------------------------------------------------------------
    (x =) 1      1      1      1      1      1      1      1      1      1      1      1
    (y =) 0      0      0      1      1      1      2      2      2      3      3      3
    (z =) 0      1      2      0      1      2      0      1      2      0      1      2

   M = [[[0,     4,     8],   [1,     5,     9]], [[2,     6,    10],   [3,     7,    11]], ...] 

C = 4
    (x =) 0      0      0      0      0      0      0      0      0      0      0      0      0      0      0      0
    (y =) 0      0      0      0      1      1      1      1      2      2      2      2      3      3      3      3
    (z =) 0      1      2      3      0      1      2      3      0      1      2      3      0      1      2      3

   M = [[[0,     2,     4,    6],    [1,     3,     5,     7]], [[8,    10,   12,    14],   [9,    11,    13,    15], ...] 
   -------------------------------------------------------------------------------------------------------------------------
    (x =) 1      1      1      1      1      1      1      1      1      1      1      1      1      1      1      1
    (y =) 0      0      0      0      1      1      1      1      2      2      2      2      3      3      3      3
    (z =) 0      1      2      3      0      1      2      3      0      1      2      3      0      1      2      3

   M = [[[0,     4,     8,    12],    [1,    5,     9,     13]], [[2,    6,    10,    14],   [3,    77,    11,    15], ...] 

Совершенно ясно, что когда C > 1, происходит некоторое чередование / пропуск.Например, когда C == 2, M(1,1,1) == 0, M(1,2,1) == 1, M(1,1,2) == 2 и т. Д. Но мне не ясно, как можно обобщить пропуск значений C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...