你知道任何方式獲得O(1)中的第m個元素組合的第k個元素嗎?預期解決方案應適用於任何大小的輸入數據和任何m值。O(1)中是否有可能獲得m個字符長度組合的第k個元素?
讓我解釋由例如此問題(Python代碼):
>>> import itertools
>>> data = ['a', 'b', 'c', 'd']
>>> k = 2
>>> m = 3
>>> result = [''.join(el) for el in itertools.combinations(data, m)]
>>> print result
['abc', 'abd', 'acd', 'bcd']
>>> print result[k-1]
abd
對於給定的數據第k個(在本實施例2-ND)M-元件組合的元件是ABD。如果不創建整個組合列表,是否可以使用該值(abd)?
我'問,因爲我的〜1,000,000m3字符的數據,這是不可能的創建完整的M-字符長度的組合子列表以獲得第k個元素。
該解決方案可以是僞代碼,或鏈接描述此問題(很可惜,我沒有找到一個)的頁面。
謝謝!
要做到這一點,您需要一個明確的組合訂單。 – 2011-05-15 20:10:27