■幾何学におけるマイ未解決問題(その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
===================================