トップ «前の日記(2008-10-13) 最新 次の日記(2008-10-15)» 編集

日々の破片

Subscribe with livedoor Reader
著作一覧

2008-10-14

_ defalut問題の続き

向井さんが順序を調べてくださった。defualt > deafult > defautl > defalut

もしかして、元のOKの人は、defualtは見るけどdefalutは見ないという意味で(というこたありえないだろうけど)

ためしてみると、ちょうどaとuの間が左右の切り替えだから、このタイミングで弱い左手小指より強い右手人差し指が先に出てdefualtと逆転するというのが一番多いというのは理にかなっていますね。その一方で、defalutは、左手の人差し指→小指という動きに右手がつられて薬指→人差し指となるわけで、どうも2番手のdeafultよりもありそうな気もするけど。

編集距離というのがわからなかったので調べるとちょっと違うことが書いてあって混乱したけど、向井さんの距離1は1回の交換という意味のようだ。

それはそれとして、なぜこれで距離が求まるんだろう?

def levenstein_distance(s1, s2)
  d = Array.new(s1.length + 1) {|i| Array.new(s2.length + 1)}
  d.each_index do |i|
    d[i][0] = i
  end
  d[0].each_index do |j|
    d[0][j] = j
  end
  1.upto(s1.length) do |i|
    1.upto(s2.length) do |j|
      cost = (s1[i - 1] == s2[j - 1]) ? 0 : 1
      d[i][j] = [d[i - 1][j] + 1, d[i][j - 1] + 1, d[i - 1][j - 1] + cost].min
    end
  end
  d[s1.length][s2.length]
end
 
if $0 == __FILE__
  puts(levenstein_distance('default', 'defualt'))
  puts(levenstein_distance('default', 'defalut'))
  puts(levenstein_distance('default', 'defuult'))
end
#ちゃんと読んだらわかった。なるほどなぁ。
本日のツッコミ(全2件) [ツッコミを入れる]
_ 向井 (2008-10-14 08:24)

わたしの「編集距離」は定義からすると微妙に間違っています。気分だけ汲んでやってください

_ arton (2008-10-14 14:36)

いえいえ、編集距離という考え方を知ることが出来たので感謝してます。


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|

ジェズイットを見習え