■幾何学におけるマイ未解決問題(その10)

 ハミング距離とは,等しい文字数をもつ2つの文字列の中で,対応する位置にある異なった文字の個数である.たとえば,

  1011101,1001001

の排他的論理和をとると

  0010100

となり,ハミング距離は2となる.

 ハミング距離はn次元立方体の2つの頂点間のマンハッタン距離に相当するものであるから,2つの多面体,たとえば(010110)と(101001)の間の自然な距離は,

  正方格子のマンハッタン距離+k立方体のマンハッタン距離

で定義される.

===================================

【1】アルゴリズム

[0]wの左右を逆転させて,大きい方を改めてwとおく.これで,左側の0マージンが右側の0マージンより小さくなる.

[1]wの最初の1と最後の1の位置を1s,1eとし,その間を0に置換する.0がk個あるとする.

  (0,・・,0,1s,01,・・,0k,1e,0,・・,0)

[2]w=(0,・・,0,1s,*,・・,*,1e,0,・・,0)との排他的論理和をとると,k立方体のマンハッタン距離(m1)が得られる.

[3]次に,正方格子のマンハッタン距離であるが,

  s←s+1,e←e−1

とする.

kが偶数のとき,(0,・・,0,1,1r,0,・・,0)

kが奇数のとき,(0,・・,0,1r,0,0,・・,0)

になるまで繰り返す.

kが偶数のとき,ステップ数:s1=(k−2)/2

kが奇数のとき,ステップ数:s1=(k−1)/2

[4](1,0,・・・,0)との間のステップ数は,

  (0,・・,0,1,1r,0,・・,0)→s2=2r−1

  (0,・・,0,1r,0,0,・・,0)→s2=2r−2

[5]正方格子のマンハッタン距離は

  m2=s1+s2

===================================