Dies scheint eine einfache Anfrage zu sein, aber Google ist nicht mein Freund, denn "Partition" führt zu einer Vielzahl von Treffern im Bereich Datenbank und Dateisystem.
Ich muss alle Partitionen eines Arrays mit N Werten (N ist konstant) in k Unterarrays aufzählen. Die Unterfelder sind genau das - ein Startindex und ein Endindex. Die Gesamtreihenfolge des ursprünglichen Arrays wird beibehalten.
Zum Beispiel mit N=4 und k=2:
[ | a b c d ] (0, 4)
[ a | b c d ] (1, 3)
[ a b | c d ] (2, 2)
[ a b c | d ] (3, 1)
[ a b c d | ] (4, 0)
Und mit k=3:
[ | | a b c d ] (0, 0, 4)
[ | a | b c d ] (0, 1, 3)
:
[ a | b | c d ] (1, 1, 2)
[ a | b c | d ] (1, 2, 1)
:
[ a b c d | | ] (4, 0, 0)
Ich bin mir ziemlich sicher, dass dies kein originelles Problem ist (und nein, es ist keine Hausaufgabe), aber ich würde es gerne für jedes k <= N machen, und es wäre großartig, wenn die späteren Durchläufe (wenn k wächst) von früheren Ergebnissen profitieren würden.
Wenn Sie einen Link haben, teilen Sie ihn bitte mit.
2 Stimmen
Es sieht einfach aus mit k = 2; können Sie ein Beispiel mit einem höheren k, vorzugsweise einem höheren Wert von n, posten, damit die Frage klarer wird?
1 Stimmen
Ihr Beispiel hat die gleiche Partition für (0, 4) und (4, 0), nämlich abcd, ist das beabsichtigt?
0 Stimmen
Andrew, die Partitionen sind unterschiedlich. Eine ist |abcd und die andere ist abcd| (das leere Bit befindet sich an den gegenüberliegenden Enden).