Riffle mische eine Schnur - Cops

8

Räuberpost

Ein Riffle Shuffle ist eine Methode zum Mischen von Karten, bei der das Deck in zwei ungefähr gleiche Abschnitte aufgeteilt und die Abschnitte in kleinen Gruppen ineinander gespalten werden. So mischen Sie eine Zeichenfolge:

  • Teilen Sie die Zeichenfolge in gleiche Abschnitte.
  • Kehren Sie die Zeichenfolgen um und beginnen Sie am Anfang jeder Zeichenfolge.
  • Fügen Sie Läufe mit einer gleichmäßig zufälligen Länge zwischen 1 und der Anzahl der in der aktuellen Zeichenfolge verbleibenden Zeichen in die endgültige Zeichenfolge ein
  • Entfernen Sie dann diese Zeichen aus der Zeichenfolge.
  • Wiederholen Sie dies für die andere Hälfte, bis beide Hälften leer sind.

Ein Beispiel

"Hello World!"      Output string = ""
"Hello ", "World!"  ""
"Hell", "World!"    " o"
"Hell", "World"     " o!"
"Hel", "World"      " o!l"
"Hel", "Wo"         " o!ldlr"
"H", "Wo"           " o!ldlrle"
"H", ""             " o!ldlrleoW"
"", ""              " o!ldlrleoWH"

Das Endprodukt von Hello World!könnte sein o!ldlrleoWHund das würden Sie ausgeben.

Cops

Ihre Aufgabe ist es, ein Programm (oder eine Funktion) zu erstellen, mit dem eine Zeichenfolge gemischt wird. Wenn die eingegebene Zeichenfolge eine ungerade Länge hat, teilen Sie sie einfach in zwei Zeichenfolgen mit ungerader Länge und einer relativen Länge von +1und +0( abc => [ab, c] or [a, bc]) auf. Sie können Eingaben auf normale Weise vornehmen und Ausgaben auf normale Weise erzeugen.

Ihre Cops-Einreichung besteht aus 4 Dingen

  • Die Sprache, die Sie verwendet haben
  • Die Länge Ihres Programms in Bytes
  • Ihr Programm, Riffle gemischt.
  • Alles andere, was Sie hinzufügen möchten

Sie möchten verhindern, dass Ihr Code 7 Tage lang von den Räubern geknackt wird. Nach dieser Zeit ist Ihr Programm sicher und Sie sollten es in Ihrem ursprünglichen Programm bearbeiten. Ihre Einreichung kann noch geknackt werden, bis Sie Ihre Lösung offenlegen. Die kürzeste und sicherste Lösung ist der Gewinner!

Caird Coinheringaahing
quelle
Lassen Sie uns diese Diskussion im Chat fortsetzen .
Jonathan Allan
Der Wechsel zu gleichmäßig zufällig macht mich zu einem traurigen Drachen. Ich hatte Spaß daran, einen Eintrag mit einer Wald-Verteilung (inverses Gauß) zu machen. Ich würde es gerne posten.
Draco18s vertraut SE

Antworten:

2

Gelee, 11 Bytes, geknackt

Dies ist eine Golfversion, so dass jemand sie wahrscheinlich leicht knacken kann, indem er einfach eine Golfversion macht. Es gibt wahrscheinlich ein paar verschiedene Ansätze, aber ich vermute, dass dieser Ansatz bei Golfsprachen anständig verbreitet sein wird.

Ṗ/Œż€X€U2sœ

Der SHA-384-Hash meines beabsichtigten Programms ist 86025a659b3c5fc38e943f72b1f26e28e2e751a7118a589073f1d24fa61ff6b02753d6a0f3f0c7fee6555de69fd06a74(unter Verwendung der UTF-8-Codierung).

HyperNeutrino
quelle
Cracked
fireflame241
@ fireflame241 gute Arbeit +1
HyperNeutrino
2

> <> 46 Bytes

 }lr]l:l~\r[-r}x>o?
<!l>x![; ?=\?(0:2i
:,2-%2:

Es gibt fast keine Verschleierungen im realen Code, aber ich vermute, dass eine 2D-Sprache ohnehin schwer genug ist, um sie zu knacken.

Haftungsausschluss: Geschrieben, bevor angegeben wurde, dass es einheitlich zufällig sein muss. Dies ist nicht einheitlich zufällig, und ich bin mir nicht sicher, wie ich überhaupt einen einheitlich zufälligen Algorithmus in> <> implementieren würde.

Scherzen
quelle
1

Python 3, 154 Bytes (Liste der Zeichen -> Liste der Zeichen) (Funktion) Gebrochen

[=o;]1-::[]:s[i,]1-::[]s:[i=R,L;2//)i(nel=s    
:)i(r fed
*tropmi modR+L+o nruter    
]:s[L,R=R,L;]s:[L=+o;))L(nel,1(tnidnar=s:R dna L elihw    
]nar morf

Ich bezweifle, dass dies zu schwer zu knacken sein wird, zumal das einmalige Riffling ziemlich unwirksam ist (Sie können ganze Programmkomponenten in der Ausgabe sehen ...). Dies dient hauptsächlich dazu, die Dinge ins Rollen zu bringen. Möglicherweise gibt es Leerzeichen (einschließlich Zeilenumbrüche), die ich nicht richtig kopiert habe. Der SHA-384-Hash meiner beabsichtigten Lösung ist 5924530418bf8cd603c25da04ea308b124fdddfc61e7060d78b35e50ead69a7fbde9200b5ee16635cc0ee9df9c954fa1.

HyperNeutrino
quelle
@ H.PWiz Python. Hoppla, ich habe vergessen, es hinzuzufügen (auch Bytecount, danke für die Erinnerung!)
HyperNeutrino
Könnten Sie theoretisch einfach versuchen, den Code in umgekehrter Reihenfolge zu mischen und mit Python auszuführen, bis er funktioniert?
fəˈnɛtɪk
@ fəˈnɛtɪk Theoretisch sollte das funktionieren ... Es kann jedoch eine Weile dauern: P
HyperNeutrino
@ fəˈnɛtɪk Das ist so, als würde man versuchen, das Programmiersprachen-Quiz mit TIO Brute Force zu lösen. Es macht keinen Spaß, es zu tun.
user202729
1
Recracked
fireflame241
1

Röda , 118 Bytes

2//x#=z}][=]:y[x
}]0>)b..a(#[]1-::[]:y[x
x#%)(reelihw}]0>b#[fi)b(g
getnI]0>a#[fi)a(g{]mo:z[x=b]zdnar=y|x|{=:[g{xx=a
 f

Es nimmt einen Zeichenstrom als Eingabe und gibt einen Zeichenstrom aus.

fergusq
quelle
1

R , 283 Bytes, geknackt

/n,s(daeh-<l
))'',s(tilpsrts(le::sdohtem-<s
)s(rahcn-<n{)s(noitcnufhtgnel(fi
})x-,l(liat-<l
)))x,l(daeh(ver,o(c-<o
)1,)l(htgnel(elihw
}{-<o
)2/n,s(liat-<r
)2'=pes,o(tac
}})y-,r(liat-<r
)))y,r(daeh(ver,o(c-<o
)1,)r(htgnel(elpmas-<y{))r(l(fi{))r(htgnel|)l(htgnel()'htgne}(lpmas-<x{))le

Mir ist jetzt klar, dass das Schreiben einer längeren Antwort mehr "Läufe" von Zeichen enthält, die leider erhalten bleiben.

Viel Glück!

Giuseppe
quelle
Cracked
Ferguson
@ Mr.Xcoder danke für die Bearbeitung
Giuseppe
0

Pyth , 14 Bytes, geknackt

_Qm/dc2iF.jk.O

Ziemlich standardmäßige Pyth-Implementierung zum Testen des Wassers. Es mag ziemlich leicht zu knacken sein, aber ich denke, wir werden sehen, wie es abschneidet.

notjagan
quelle
Gebrochen!
Herr Xcoder
0

Zufälliger Brainfuck , 273 Bytes

]<.[<<]<[<<]<[<]<,.[<]-<<<]>>>>>]<+>-[<]<+>-[<<]>]>+<]<]>[>>]]>[>>]<]<+>-[[<<]>]>[>>]<-[[[>>]]>[>]<+>-[[<]<[[?>>]<+>-[[<]-<]>]<[>>]<<+>>+>-[[<<,[>]<.[<]>[>]<+>-[<]>[>]->>>]<<<<<]>+-[<<-[>]>+<-[>>]<]<+>-[[[<<]]<[<]>+<-[[><]<[[>]<+>-[>],]<+>-[<]<->>+]>[[<-[<?<<+>>>[,]>+<-[[>

Zufälliger Brainfuck ist der gleiche wie normaler Brainfuck, führt jedoch den ?Charakter ein, der die aktuelle Zelle auf einen zufälligen Wert setzt. Fun Note; Ich hatte eine Version davon, die aus offensichtlichen Gründen nur für Eingaben mit weniger als 256 Zeichen funktionierte, aber der Code selbst war länger. Als ich es so änderte, dass es länger funktioniert, stellte sich heraus, dass es ein Byte kürzer als das Original war. ¯ \ _ (ツ) _ / ¯.

Scherzen
quelle
0

Aufdringlich , 25 Bytes, geknackt

iUL1[N@O;?x?v:/2L=0LF;.':

Übernimmt die Eingabe als "quoted string"in der Befehlszeile.

FlipTack
quelle
Gebrochen
Jo King
Sollte das 1Lumgekehrt sein? Andernfalls addieren Sie 1 zur Länge
Jo King
@JoKing Richtig und schöner Riss!
FlipTack
0

APL (Dyalog Unicode) , 62 Bytes

(g÷f¨()⍵(≢~⊃⍵⍺⍉⍨⍨}(←(←'')⊂f≢(g∘⌈¨}{?↑-⍵↑⋄)≢)))≢⊂{,⋄⍵⍵↑2f≢∘⊃?()

SHA-384 meiner beabsichtigten Lösung: 3209dba6ce8abd880eb0595cc0a334be7e686ca0aa441309b7c5c8d3118d877de2a48cbc6af9ef0299477e3170d1b94a

Dies ist wahrscheinlich einfach genug, zumal die meisten Leute im APL-Chat mir geholfen haben, diese Antwort zu erstellen.

J. Sallé
quelle