2015-01-24

http://anond.hatelabo.jp/20150124001319

そんなもん定義できねえよ。バカだなぁ。

三角不等式なりたたんだろ。

追記

Scala元増田のやりたそうなことを書いてみた。

n次元空間にあるn次元ベクトルとそのm次元部分空間にあるm次元ベクトルとの距離。

結構大変だったじゃねーか。

もし本当にこれが解けなくて困ってたんなら2000円ぐらい払って欲しい。

type Vector = Array[(Int, Double)]

def distanceWithProjection(p1: Vector, p2: Vector): Double = {
  def distance(p1: Vector, p2: Vector) = {
    var d = 0.0
    for (i <- 0 to (p1.size - 1)) {
      val dp = p1(i)._2 - p2(i)._2
      d += dp * dp 
    }
    Math.sqrt(d)
  }

  def find(vector: Vector, i: Int): Option[(Int, Double)] = {
    val filterd = vector filter (v => v._1 == i)
    if (filterd.size == 1)
      Some(filterd.head)
    else
      None
  }

  def projection(from: Vector, to: Vector): Vector = {
    var vector = Array.fill(to.size)((0,0.0))
    for (i <- 0 to (vector.size - 1)) {
      vector(i) = find(from, to(i)._1) match {
        case Some(v) => v
        case None => (0,0.0)
      }
    }
    vector
  }

  distance(projection(p1, p2), p2)
}
  • 元増田は数学弱いっぽいから、とにかく元増田のコードの処理がしたいってだけだと思う方がいいだろう。擬距離だな。数学的には。 そもそもソシャゲかなんかのパラメータっぽい数字...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん