0

我正在尝试创建两个函数:get & set,它们都接受任意 # 个参数(比如说 4)。set 函数接受一个数组并将其设置在 memcached 中,get 函数从 memcached 中获取一个数组并返回它。

function get($a, $b, $c, $d) {
    ...
    return $array;
}

function set($a, $b, $c, $d, $array) {
    ...
}

假设 $a 有 5 种可能性,$b 有 10 种可能性,$c 有 100 种可能性,$d 有 1000 种可能性。

扭曲:只有 $a 是有保证的,但应该总是有一个响应 get (基于传递给它的任何数据)。它还应该能够处理给定 $a、$b 和 $c 的情况,如果没有任何设置与所有这三个参数匹配,它会“向上”(在树的意义上)并找到最接近的根据参数的优先级进行匹配)。

现在我正在考虑构建某种形式的加权树,对参数进行优先级排序并分配权重(例如,$a 具有优先级 100,$b 具有优先级 10,$c 具有优先级 90,$d 具有优先级 50).. .

代码与语言无关,更多地寻找有关如何处理此问题的想法(最有效/最有效)。提前致谢!

4

1 回答 1

1

我会将其视为最近邻搜索问题(维基百科链接是一个相当不错的总结)。如果你能找到一个合适的距离度量,也许你最好使用现成的算法/数据结构,比如R-Tree

于 2012-03-29T20:26:04.290 回答