O (1) 'de m-element kombinasyonunun k-inci elemanını elde etmenin herhangi bir yolunu biliyor musunuz? Beklenen çözüm, herhangi bir giriş verisi boyutu ve herhangi bir m değeri için çalışmalıdır. abd olan belirli bir verilerine k-th (bu örnekte 2-nd) m-eleman kombinasyonunun elemanı içinO (1) 'de m-karakter uzunluğunun k-th elemanını almak mümkün mü?
>>> 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
:
beni (piton kodu) örnek bu sorunu açıklayalım. Tüm birleştirici listeyi oluşturmadan bu değeri (abd) mümkün mü?
Ben ~ 1.000.000 karakter veri var ve k-inci elemanı almak için tam m karakterlik uzunlukta kombinatoriyel liste oluşturmak mümkün değildir, çünkü bi'şey soran.
çözüm sözde kodu veya bir bağlantı, bu sorunu (ne yazık ki, bulamadım) açıklayan sayfa olabilir.
Teşekkürler!
Bunu yapmak için, kombinasyonlar için iyi tanımlanmış bir sıraya ihtiyacınız vardır. –