Sie werden eine Entscheidung treffen, die sich auf die Druckbarkeit bezieht.
SIE MÜSSEN DIE STEUERUNG BEI DER ÄNDERUNG DES RANDES (UNTERSCHIEDLICHE, 50% KANAL-UPPERATUR) BEHANDELN, UM ANDERE ZU LÖSCHEN.
das ist es.
(Entschuldigung für die Zeichensetzung, es war für das Konzept der Frage)
Lesbare Version:
Sie erhalten eine Zeichenfolge, die aus druckbaren ASCII-Zeichen besteht.
Sie durchlaufen die Zeichenfolge und ändern zufällige (einheitliche Großbuchstaben mit einer Wahrscheinlichkeit von 50%) in Großbuchstaben und alles andere in Kleinbuchstaben.
das ist es.
Beispiele
iNpuT => pOssiBle oUtPUt
Programming puzzles and Code Golf => pRogRaMMiNg pUzzlEs aNd coDe goLf
dErpity deRp derP => deRpiTy dErp DerP
CAAAPSLOOOCK => cAAapslOoocK
_#$^&^&* => _#$^&^&*
s=>rand()%2?s.upper():s.lower()
Antworten:
C - 65 Bytes
Ziemlich gut für eine Mainstream-Sprache!
Verwendet XOR, um das Bit
0x20
für jedes alphabetische Zeichen zufällig umzudrehen . Das Programm geht von einem ASCII-Zeichensatz ausEOF < 0
.Probelauf aus eigener Quelle!
Sehr derpy.
quelle
JavaScript, 87 Bytes
68 Bytes in ES6:
quelle
Gelee , 6 Bytes
Probieren Sie es online aus!
Wie?
Wenn Sie alle Zeichen der Eingabe senken und dann jeweils mit einer Wahrscheinlichkeit von 50% in Großbuchstaben setzen, entspricht dies der Auswahl eines der ursprünglichen Zeichen und des Zeichens mit getauschten Groß- und Kleinschreibung mit gleicher Wahrscheinlichkeit ...
quelle
X
wird mit Pythons implementiert.random.choice
Wenn also eine Liste mit 2 Zeichen angezeigt wird, wird jedes Zeichen mit einer Wahrscheinlichkeit von 50% ausgewählt - jedes Zeichen in der Eingabe erzeugt eine solche Liste (nicht alphabetische Zeichen sind eine Liste von 2 gleichen Zeichen, aber das spielt keine Rolle, wenn die Interpretation von "Uniform" oben korrekt ist).PowerShell ,
6460 ByteProbieren Sie es online aus!(Stellen Sie sicher, dass "Ausgabecache deaktivieren" aktiviert ist, wenn Sie zufällige Ergebnisse wünschen.)
Genaue Übersetzung der Herausforderung. Nimmt die Eingabezeichenfolge
ToLower()
, konvertiert sie in einchar
Array, durchläuft jedes Zeichen|%{...}
und wählt zufällig zwischen dem vorhandenen Zeichen oder der Variante in Großbuchstaben aus. Dann werden-join
sie alle wieder zu einer einzigen Zeichenfolge zusammengefügt. Das funktioniert weilToUpper
undToLower
nur alphabetische Zeichen beeinflussen, Zeichensetzung und dergleichen unverändert bleibt.(Dennis hat die Alias-Liste auf TIO korrigiert,
Random
damit Linux nicht ausprobiert wird,random
sondern korrektGet-Random
als PowerShell-Befehl aliasiert wird, wie es sollte. Danke, Dennis!)quelle
MATL ,
1312 BytesProbieren Sie es bei MATL Online aus
Erläuterung
quelle
Japt , 10 Bytes
Probieren Sie es online aus!
Erläuterung
Das ist also eine Art kitschiger Hack, aber es funktioniert. In JavaScript können Sie so etwas tun
zufällig
x
in Groß- oder Kleinbuchstaben konvertieren . In Japt sind die entsprechenden Funktionenu
fürtoUpperCase
undv
fürtoLowerCase
. In Japt gibt es jedoch keine direkte Möglichkeit, einen berechneten Eigenschaftswert zu erhalten (x[expression]
in JavaScript) .Eine meiner Lieblingsfunktionen von Japt ist, dass Sie, wenn Sie eine Funktion haben, die aus einem einzelnen Methodenaufruf besteht (z. B.
mX{Xq}
oder.m(X=>X.q())
in JS), alles außer dem Namen der Methode weglassen können, zmq
. Der Compiler wandelt dies dann in eine Zeichenfolge um, die an den ursprünglichen Methodenaufruf (.m("q")
) übergeben wird, und die Methode wandelt dies wieder in eine Funktion um. Es gibt also keinen Unterschied zwischenmq
undm"q"
; beide erzeugen die gleiche Ausgabe.Nun, wo ich damit hingegangen bin: Während wir eine zufällige Methode für eine Zeichenfolge nicht direkt aufrufen können , können wir
m
diese Zeichenfolge mit einem zufälligen Methodennamen aufrufen . Also zur Erklärung:quelle
Mq
Standardmäßig nicht 2? Oder wurde das kürzlich hinzugefügt?PHP, 53 Bytes
quelle
strto.*.er
. :)rand()&1
foreach(str_split($argv[1]as$c)...
anstelle der Array-Indizierung verwenden.Perl 5 , 26 Bytes
25 Bytes +
-p
Flag.Probieren Sie es online aus!
quelle
Perl 6 ,
3229 BytesVersuch es
Versuch es
quelle
Python 2 ,
7774 BytesProbieren Sie es online aus!
quelle
Japt ,
1210 BytesErläuterung:
Probieren Sie es online aus!
quelle
05AB1E , 8 Bytes
Probieren Sie es online aus!
Erläuterung
quelle
JavaScript, 77 Bytes
Probieren Sie es online aus!
quelle
CJam , 14 Bytes
Probieren Sie es online aus!
Erläuterung
quelle
MATL ,
1211 Bytes1 Byte entfernt mit Jonathan Allans Idee , den Fall direkt zu ändern.
Versuchen Sie es bei MATL online!
Erläuterung
quelle
Pyth, 5 Bytes
Testsuite
quelle
Befunge , 136 Bytes
Probieren Sie es online aus!
Es gibt viele Leerzeichen, die ich für möglich halte, um sie loszuwerden. Befunge hat keine Möglichkeit herauszufinden, was ein Brief ist und was nicht, also mache ich das in der ersten Reihe.
quelle
~
Bash , 64 Bytes
erster Versuch
Probieren Sie es online aus!
mischt Großbuchstaben, nimmt die ersten 13, entfernt Zeilenumbrüche und speichert in $ a. $ b hält $ a in Kleinbuchstaben. Die Eingabe wird durch $ {1 ,,} auf Kleinbuchstaben gesetzt und als Heredoc an tr übergeben, der jedes Vorkommen von $ b durch $ a ersetzt
Dies ist etwas unkompliziert, da immer der gleiche Buchstabe groß geschrieben wird.
quelle
JavaScript + HTML, 115 Bytes
quelle
Bash, 162 Bytes
Ziemlich selbsterklärend. Übernimmt Eingaben von der Befehlszeile arg und schreibt in stdout.
Lauf wie
derpifier.sh "Derp this"
Mann, sobald ich anfange, das anzuwenden Tipps , schrumpft der Code schnell.
quelle
Schnell - viel zu viele Bytes (
176167)uppercased()
,lowercased()
,arc4random_uniform()
Töten wirklich die Partitur, außer für mich eine Funktion hinzuzufügen, die seit dem Swift keine Standard - Eingabemethode hat!Funktion mit Nutzung:
print(g(x: "Your String Here"))
quelle