2012-03-29 64 views
0

我試圖創建兩個函數:get & set,它們都接受任意數量的參數(比方說4)。 set函數接受一個數組並將其設置在memcached中,get函數從memcached獲取一個數組並返回它。使用get/set函數創建一棵樹,該函數接受任意數量的參數

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

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

要有5種可能性$一個,爲$ b 10點分配的可能性,對於$ C 100點的可能性,和1000種可能性$ d。

扭曲:只有$ a是有保證的,但是應該總是得到一個響應(根據傳遞它的任何數據)。它還應該能夠處理給定$ a,$ b,& $ c的情況,如果沒有任何設置與所有三個參數匹配,則它會「向上」(樹狀),並找到最接近基於param的優先級進行匹配)。

現在我正在考慮構建某種形式的加權樹,並將參數設置爲優先級並賦予權重(例如$ a的優先級爲100,$ b的優先級爲10,$ c的優先級爲90,$ d的優先級爲50)...

代碼是語言不可知的,更多關於如何處理這個問題的想法(最有效/最有效)。提前致謝!

回答

1

我會認爲這是最近鄰搜索問題(the wikipedia link是一個相當不錯的總結)。如果您可以找到合適的距離度量標準,也許您可​​以使用現成的算法/數據結構,如R-Tree

相關問題