Ich versuche, die Liste aller k Tupel auf den Zahlen 0 bis n-1 zu generieren, aber ich möchte diese Liste in Revlex bestellt werden. Zum BeispielReihenfolge der Tupel in Revlex
import itertools
list(itertools.combinations(range(0, 6), 3))
gibt diese Tupel in lexikographischer Reihenfolge:
[(0, 1, 2), (0, 1, 3), (0, 1, 4), (0, 1 , (0, 2, 3), (0, 2, 4), (0, 2, 5), (0, 3, 4), (0, 3, 5), (0, 4, 5), (1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5), (1, 4, 5), (2, 3, 4), (2, 3, 5), (2, 4, 5), (3, 4, 5)]
während ich möchte, dass der Ausgang durch umgekehrtes lexikographisches bestellt wird:
[(0,1,2), (0,1,3), (0,2,3), (1,2,3), (0,1,4), (0,2,4), (1,2,4), (0, 3,4, 1,3,4, 2,3,4, 0,1,5, 0,2,5, 1,2,5, 0,3, 5), (1,3,5), (2,3,5), (0,4,5), (1,4,5), (2,4,5), (3,4,5) ]
Danke!
Können Sie "reverse lexicographic" in Worten oder einer mathematischen Formel erklären? Ihre Bestellung Ihres Beispiels ist nicht klar, zumindest nicht für mich. –
Wir sagen (a_1, ..., a_k)> (b_1, ..., b_k) in umgekehrter lexikographischer Form (Revlex), wenn der äußerste rechte Teil der Differenz (a_1 - b_1, ..., a_k - b_k) negativ ist . Im obigen Beispiel gilt (1,2,3)> (0,1,4) durch Betrachten des letzten Eintrags dieser Tupel 3 - 4 = -1. – dc2814