【发布时间】:2011-02-22 22:15:45
【问题描述】:
假设有三组高维向量:
{a_1, a_2, ..., a_N},
{b_1, b_2, ... , b_N},
{c_1, c_2, ..., c_N}。
我的每个向量都可以表示为:x = a_i + b_j + c_k,其中 1
我的问题是,如果有两个向量:x = (i_1, j_1, k_1), y = (i_2, j_2, k_2),有没有一种方法可以计算这两个向量的欧几里得距离而无需解码 x 和是的。
【问题讨论】:
-
对您的符号感到困惑。一个向量的格式是什么?
-
“不解码”是什么意思?
-
向量在 R^M 空间中。需要 M 个浮点数来存储一个向量。如果向量编码为 (i, j, k),则只需要 3 个 int。
-
解码一个向量就是从3个int值中恢复M个浮点值:(i, j, k) ==> a_i + b_j + c_k。如果我解码向量,那么很容易计算两个向量的距离。
-
三个组向量 {a_1, a_2, ..., a_N}, {b_1, b_2, ... , b_N}, {c_1, c_2, ..., c_N}。可以视为三个“基本向量”。
标签: algorithm