>>
<<
Ркв
Ввд
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
Фрз
Слв
Изм
Рзг
!:
Помощь
Словарь