Ich bin auf der Suche nach ein paar Funktionen, die den Index eines Vektors auf effiziente Weise per Seeding mit 128-Bit-Schlüssel permieren. Optimierung ist für mich kritisch, da ich die gleiche Operation mehrmals mache.Pseudo-zufällige Permutation mit 128 Bit Seed
Kann jemand eine C/C++ - Open-Source-Bibliothek vorschlagen, in der 128-Bit-Seeding verfügbar ist und eine Funktion wie Permute (Seed, Range (Min, Max), Sample_Size) unterstützt?
Zum Beispiel; Wenn die Funktion permute (1, [0,10], 10) das Ergebnis als 3 6 7 2 4 9 8 1 0 5 ergibt, dann sollte permute (1, [0,10], 5) 3 6 7 2 ergeben 4.
Parameter min, max und sample_size sind dynamische Variablen. Es ändert sich bei jeder Iteration.
Dies unwahrscheinlich klingt, es zu finden ... Ihre beste Option könnte sein, es selbst zu schreiben. – Antzi
Was machen Sie mit dem Ergebnisvektor? Wenn Sie Leistung benötigen, können Sie sie möglicherweise vollständig beseitigen. – sh1
Eigentlich verwende ich eine C++ - Open-Source-Bibliothek namens PCG Random Number Generator. Es erlaubt 128-Bit-PRNG zu verwenden, unterstützt aber keine Permutationsfunktion wie Shuffle. – metlira