R: Permutationen und Kombinationen mit/ohne Ersatz und für unterschiedliche/nicht eindeutige items/multiset
In diesem thread, ich versuche alle Häufig gestellten Fragen und Ihre Antworten hier. Ich hoffe, dies wird nützlich sein für jemanden.
Allgemeine Frage: so erstellen Sie Sequenzen von r
Objekte aus n
Objekte?
- Kombination vs permutation.
- mit Ersatz vs. ohne Ersatz.
- verschiedene Gegenstände gegen nicht-eindeutige Elemente (multimengen).
Gibt es insgesamt 2^3=8
Fragen von diesem Typ.
[Update]
Josh O ' Brien schlägt vor, dass die 8 Fragen werden auf zwölffache Weise. In der Tat, die "distinct" - Fragen sind in zwölffache Weise, während die "nicht-eindeutigen" Fragen sind nicht im Lieferumfang enthalten. Jedenfalls ist es interessant zu vergleichen, die 8 Fragen hier mit zwölffache Weise. Siehe die Kommentare für weitere Lesungen.
- Es gibt wohl zwölf Fragen dieser Art.
- Ja, es ist wirklich hilfreich, zu organisieren und zu denken, all diese unterschiedlichen kombinatorische Objekte. FYI, die meisten von Google ' s erste Seite trifft für "Zwölffache Weise" mehr lesbaren Tabellen/klarer Erklärungen, als die Wikipedia Seite, die ich verlinkte.
- Vielen Dank für die Informationen. Ich denke, was ich bin fehlt, sind die surjektive Fällen. Richtig..? [update]: es scheint falsch zu sein
- Du hast Recht, das ist falsch 😉 die Merkmale, Die die 12-fache Klassifizierung basiert sind +/- anders als das, was Sie ausgewählt haben. Für mich mit Abstand der beste Weg, um darüber nachzudenken ist, wie man sich n Kugeln wird in m Urnen. Es gibt drei mögliche Einschränkungen, wie Sie platziert werden können (keine Beschränkung, muss injective, oder muss surjektive), und 4 möglichen Kombinationen der beschriftete/unbeschriftete Kugeln und Urnen. Hier und hier sind 2 Quellen, die das Objektiv, um das problem zu betrachten.
- Endlich habe ich den herausfinden, den Unterschied zwischen den 8 Fragen hier und zwölffache. Vier der Fragen, die hier in der zwölffache (die "distinct" - Fragen), während die "nicht-typischen" Fragen, die nicht in zwölffache.
- Hi Randy, ich werde an Sie wenden Ihre gmail-Adresse mit einem Dokument und einer Frage, wenn das okay ist.
- auf jeden Fall! aber ich kann nicht in der Lage zu Antworten, bis tonite.
Du musst angemeldet sein, um einen Kommentar abzugeben.
BEARBEITEN: ich habe aktualisiert die Antwort auf eine effiziente Paket
arrangements
Erste start mit
arrangement
arrangements enthält einige effiziente Generatoren und Iteratoren für Permutationen und Kombinationen. Es hat sich gezeigt, dass
arrangements
übertrifft die meisten der bestehenden Pakete von ähnlich Art. Einige benchmarks gefunden werden konnte hier.Hier sind die Antworten auf die obigen Fragen
Im Vergleich zu anderen Paketen
Es gibt einige Vorteile der Verwendung von
arrangements
über die vorhandenen Pakete.Integralen Ansatzes: Sie haben nicht zu verwenden, unterschiedliche Pakete für unterschiedliche Methoden.
Ist es sehr effizient. Sehen https://randy3k.github.io/arrangements/articles/benchmark.html für einige benchmarks.
Es ist Speicher, der effizient ist, ist es zu erzeugen in der Lage alle 13! permutation von 1 bis 13, werden vorhandene Pakete nicht tun, weil die Begrenzung der Größe der matrix. Die
getnext()
Methode der Iteratoren erlauben den Benutzer, um die Vereinbarungen eins nach dem anderen.Den erzeugten arrangements sind im Wörterbuch, um die gewünschte, für einige Nutzer.
combinations/permutations
ausgtools
so weit verbreitet sind, Ihr Paket könnte möglicherweise brechen Abhängigkeiten/legacy-code/etc. Bei der Entwicklung der Pakete, die ich gerne mit dem Sprichwort artikuliert @DirkEddelbuettel: "nicht Schaden".<package>::<function>
. Es sei denn, die Skripte sind besorgt, mit ähnlichen Namen sollte man nicht viel Schaden.....IMO.