>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь

22. Расстояние

Определим расстояние “вдоль улиц” между двумя точками как сумму модулей разности их координат вдоль каждого измерения. Тоесть:
   d=: +/@:|@:-"1
   p=: 3 5 1 [ q=: 7 4 0
   p d q
6

   table=: #: i. 2^3
   (]; d/~) table             NB. Таблица и расстояния между каждой парой точек
+-----+---------------+
|0 0 0|0 1 1 2 1 2 2 3|
|0 0 1|1 0 2 1 2 1 3 2|
|0 1 0|1 2 0 1 2 3 1 2|
|0 1 1|2 1 1 0 3 2 2 1|
|1 0 0|1 2 2 3 0 1 1 2|
|1 0 1|2 1 3 2 1 0 2 1|
|1 1 0|2 3 1 2 1 2 0 1|
|1 1 1|3 2 2 1 2 1 1 0|
+-----+---------------+
            
   g=: [ * [ = d/~@]
   (];(d/~);(1&g);(2&g)) table
+-----+---------------+---------------+---------------+
|0 0 0|0 1 1 2 1 2 2 3|0 1 1 0 1 0 0 0|0 0 0 2 0 2 2 0|
|0 0 1|1 0 2 1 2 1 3 2|1 0 0 1 0 1 0 0|0 0 2 0 2 0 0 2|
|0 1 0|1 2 0 1 2 3 1 2|1 0 0 1 0 0 1 0|0 2 0 0 2 0 0 2|
|0 1 1|2 1 1 0 3 2 2 1|0 1 1 0 0 0 0 1|2 0 0 0 0 2 2 0|
|1 0 0|1 2 2 3 0 1 1 2|1 0 0 0 0 1 1 0|0 2 2 0 0 0 0 2|
|1 0 1|2 1 3 2 1 0 2 1|0 1 0 0 1 0 0 1|2 0 0 2 0 0 2 0|
|1 1 0|2 3 1 2 1 2 0 1|0 0 1 0 1 0 0 1|2 0 0 2 0 2 0 0|
|1 1 1|3 2 2 1 2 1 1 0|0 0 0 1 0 1 1 0|0 2 2 0 2 0 0 0|
+-----+---------------+---------------+---------------+

   {&' .+*' &.> (];(d/~);(1&g);(2&g);(3&g)) table
+---+--------+--------+--------+--------+
|   | ..+.++*| .. .   |   + ++ |       *|
|  .|. +.+.*+|.  . .  |  + +  +|      * |
| . |.+ .+*.+|.  .  . | +  +  +|     *  |
| ..|+.. *++.| ..    .|+    ++ |    *   |
|.  |.++* ..+|.    .. | ++    +|   *    |
|. .|+.*+. +.| .  .  .|+  +  + |  *     |
|.. |+*.+.+ .|  . .  .|+  + +  | *      |
|...|*++.+.. |   . .. | ++ +   |*       |
+---+--------+--------+--------+--------+



>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь