その計算式に意味があるのかどうか謎だけど(そもそも距離の公理を満たしているかどうかもわからん)…。
データ構造変えたらいいんじゃね?ベクトル(厳密にはベクトルではないが)ごとに、あり得る全ての要素の数に対応するバイナリのビットベクトルを持っておいて、
距離計算時はbaseとtargetのビットベクトル同士の&をとって1が立ってるところだけ差分の自乗を計算し、一方だけに1が立ってるところは自分自身の自乗を計算する。
それの和をとればおk。実際の要素値はスパース表現で持っておいて適当な対応表つくっとけばいけそう。
Permalink | 記事への反応(1) | 23:40
ツイートシェア
ワイが求めてるのは「正しい計算」ではなくて「短くて楽に書ける」ことやで。それコードに直してみ? 「1行で収まる」んか?