APL/J言語:グラフ理論(距離)

APL/J言語:グラフ理論(距離)

これもわからないまま翻訳

      • -

二つの点のストリート距離(“street” distance)はそれぞれの軸の座標の差の大きさの合計として定義される。

   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
 +---+--------+--------+--------+--------+
 |   | ..+.++*| .. .   |   + ++ |       *|
 |  .|. +.+.*+|.  . .  |  + +  +|      * |
 | . |.+ .+*.+|.  .  . | +  +  +|     *  |
 | ..|+.. *++.| ..    .|+    ++ |    *   |
 |.  |.++* ..+|.    .. | ++    +|   *    |
 |. .|+.*+. +.| .  .  .|+  +  + |  *     |
 |.. |+*.+.+ .|  . .  .|+  + +  | *      |
 |...|*++.+.. |   . .. | ++ +   |*       |
 +---+--------+--------+--------+--------+