Herausforderung
Schreiben Sie eine Funktion oder ein Programm, das eine Eingabezeile akzeptiert, eine sehr spezifische und seltsam vertraute Zufallswiedergabe für ihre Zeichen ausführt und das Ergebnis ausgibt.
Das erforderliche Mischen kann mit dem folgenden Algorithmus beschrieben werden:
- Beschriften Sie jedes Zeichen in der Eingabe mit einem 1-basierten Index.
- Schreiben Sie das Zeichen Nummer 1 als Ausgabe.
- Schreiben Sie beginnend mit Zeichen Nummer 2 alle anderen Zeichen der Reihe nach in die Ausgabe, mit Ausnahme von Zeichen 2 selbst. Mit anderen Worten, schreiben Sie die Zeichen 4, 6, 8, 10 usw. als Ausgabe.
- Beginnen Sie mit der nächsten Zeichennummer n, die noch nicht als Ausgabe geschrieben wurde, und schreiben Sie jedes n-te Zeichen in die Ausgabe, ausgenommen Zeichen n selbst und alle anderen Zeichen (mit numerischer Bezeichnung), die Sie möglicherweise bereits in die Ausgabe geschrieben haben.
- Wiederholen Sie Schritt 4, solange der Ausgabe weitere Zeichen hinzugefügt werden.
- Schreiben Sie die restlichen auszugebenden Zeichen der Reihe nach.
Beispiel
- Beschriften Sie die Zeichen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 OLDDOCYAK 'SBEAUTYCORNER
2. Schreiben Sie das erste auszugebende Zeichen:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27OLDDOCYAK 'SBEAUTYCORNER O.
3. Schreiben Sie alle anderen Zeichen beginnend mit 2, ausgenommen 2.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNER. O OA 'EUYCRE
4. Das nächste noch nicht geschriebene Zeichen ist das Zeichen Nummer 3; Schreiben Sie jedes dritte Zeichen beginnend mit 3, jedoch ohne das Zeichen 3 selbst und alle bereits geschriebenen Zeichen.
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA 'EUYCRE YB R.
5. Wiederholen Sie Schritt 4 mit dem nächsten Zeichen, Zeichen 5.
4. Das nächste noch nicht geschriebene Zeichen ist das Zeichen Nummer 5; Schreiben Sie jedes fünfte Zeichen, beginnend mit 5, aber ohne das Zeichen 5 selbst und alle bereits geschriebenen Zeichen. (Dies entspricht nur Zeichen 25).
12 3456789101112131415161718192021222324252627OLDDOCYAK'SBEAUTYCORNEROOA 'EUYCREYB R N.
5. Das nächste Zeichen ist 7; Da jedoch 14, 21 bereits geschrieben wurden, werden keine weiteren Zeichen ausgegeben, wenn wir Schritt 4 wiederholen. Damit sind wir mit 5 fertig.
6. Schreiben Sie die restlichen Zeichen der Reihe nach aus.
12 3456789101112131415161718192021222324252627OLD DOCYAK'SBEAUTYCORNEROOA 'EUYCREYB RN LDDCKSATO
Regeln
Die Eingabe und Ausgabe kann über Standardeingabe / Standardausgabe, Zeichenfolgen oder Arrays von Zeichen erfolgen.
Wenn Sie als Standardeingabe einlesen, können Sie nach Belieben davon ausgehen, dass eine nachgestellte neue Zeile vorhanden ist oder dass die gesamte Eingabe die Zeile enthält. Newline-Zeichen nehmen nicht am Shuffle teil.
Ebenso kann Ihre Ausgabe nach Belieben einen nachgestellten Zeilenumbruch haben oder nicht.
Standardlücken sind nicht zulässig.
Dies ist ein Code-Golf-Wettbewerb. Der kleinste Code in Bytes gewinnt.
Testfälle
123456789ABCDEF -> 1468ACE9F2357BD
OLD DOC YAK'S BEAUTY CORNER -> O O A' EUYCREYB RNLDDCKSATO
Blue boxes use a 2600hz tone to convince telephone switches that use in-band signalling that the caller is actually a telephone operator.
->
Bebxsuea20h oet ovnetlpoesice htuei-adsgaln httecle satal eehn prtre 0ncce ha nng aiuapootnt ihyon atallu o s 6z oi ehwstsnbilt lr clee.