... oder anders gemacht, inspiriert von Dominics Antwort ...
%Vor%Sehen Sie sich die Fisher-Yates-Mischung an. Es ist extrem platz- und zeiteffizient und einfach zu implementieren.
Dieses Kochbuchrezept enthält eine einfache Implementierung von Fisher-Yates, die in Python gemischt werden. Da Sie ein string-Argument haben und eine Zeichenfolge zurückgeben müssen, benötigen Sie natürlich eine erste Anweisung (z. B. den Argumentnamen s
) wie ary = list(s)
und in der return
-Anweisung verwenden Sie ''.join
, um das Array von Zeichen ary
wieder in eine einzige Zeichenfolge zu setzen.
Um ein etwas niedrigeres Niveau zu sein, tauscht es einfach den aktuellen Buchstaben mit einem zufälligen Buchstaben aus, der danach kommt.
%Vor%Dies wird nicht alle möglichen Permutationen mit gleicher Wahrscheinlichkeit erzeugen, aber trotzdem könnte es in Ordnung sein für das, was Sie wollen
Hier ist ein Weg, der random.shuffle
nicht benutzt. Hoffentlich ist random.choice
in Ordnung. Sie sollten der Frage Einschränkungen hinzufügen
Diese Methode ist nicht so effizient wie random.shuffle, wird also bei langen Wörtern langsam sein
Tags und Links python