Ich habe ein Array, das jeweils eine Reihe von Zahlen n
mal enthält. Beispiel mit n=2
:nach dem Zufallsprinzip Partition Liste ohne Duplikate
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
Was würde Ich mag eine Partition dieser Anordnung, bei der die Mitglieder der Trennwand
- Elemente enthalten, die zufällig aus dem Array
- enthalten keine Duplikate erstellt werden
- enthalten die gleiche Anzahl von Elementen (bis zur Rundung)
k
Beispielausgabe für k=4
:
[[3,0,2,1], [0,1,4,2], [3,4]]
Ungültige Ausgang für k=4
:
[[3,0,2,2], [3,1,4,0], [1,4]]
(dies ist eine Partition, aber das erste Element der Partition enthält Duplikate)
Was die pythonic Weg, das zu erreichen?
Ihre Partitionierung ist noch nicht klar definiert. Was tun Sie in dem Fall, dass k> L/n (wobei L die Gesamtzahl der Elemente ist). Zum Beispiel, in Ihrem Array, was würden Sie für k = 6 zurückgeben? – Penguino
Vielleicht lesen Sie Ihre Eingabe in einen 'Counter', dekrementieren Sie dann' k' zufällige Einträge in diesem 'Counter', und verfolgen Sie welche (das sind die Unterlisten in Ihrer Ausgabe). Dann mach das solange, bis alle Einträge erschöpft sind. Ich wäre besorgt, dass für einige Werte von "n" und "k" und die Größe des Satzes die Anzahl der Unterlisten in Ihrer Ausgabe zufällig sein könnte. Ich weiß nicht, ob das ein Problem sein würde, aber es ist etwas, das man beobachten kann –