Reversed Engineered from Uniqueness (Räuberfaden)


11

Ausgehend von der Ausgabe des Cop-Programms ( o), der Byteanzahl ( n) und der Anzahl der verwendeten eindeutigen Bytes ( c) wird ein entsprechender Code erstellt, der nbytelang ist und ceindeutige Bytes enthält, die mit der Ausgabe des Cop übereinstimmen o.


Dies ist der Räuberfaden . Veröffentlichen Sie hier Lösungen, die Sie geknackt haben.

Der COPS-Thread befindet sich hier .


Räuber sollten Lösungen wie diese veröffentlichen:

#[Language], `n` Bytes, `c` Unique Bytes (Cracked)[Original Link to Cop Thread]

    [Solution]

(Explanation)

Regeln

  • Sie dürfen keine Eingaben für Ihr Programm vornehmen.
  • Das Programm muss mindestens 1 Byte verwenden, darf jedoch 255 Byte nicht überschreiten.
  • Die Ausgabe selbst ist ebenfalls auf 255 Bytes begrenzt.
  • Das Programm muss bei mehrmaliger Ausführung konsistente Ausgabeergebnisse aufweisen.
  • Wenn Ihre Einreichung nicht innerhalb von 7 Tagen geknackt wird, können Sie sie als "sicher" markieren.
    • Wenn Sie es als sicher markieren, veröffentlichen Sie die beabsichtigte Lösung und bewerten Sie sie als c*n.

Gewinnen

  • Der ungerissene Beitrag mit der niedrigsten c*nPunktzahl gewinnt den Thread des Polizisten.
  • Wer am meisten knackt, gewinnt den Räuberfaden, wobei der früheste Riss die Krawatte bricht.
  • Dies wird nach 10 sicheren Antworten oder einigen Wochen entschieden.

Vorsichtsmaßnahmen

  • Wenn Sie sich übermütig fühlen, können Sie dem Benutzer den Algorithmus mithilfe eines Spoiler- Tags mitteilen .

Hinweis: Bitte denken Sie auch daran, Risse zu verbessern, sie sind normalerweise der beeindruckende Teil.

Antworten:



4

MATL , 4 Bytes, 4 eindeutige Bytes, Stewie Griffin

1X2p

Probieren Sie es online aus!

Erläuterung

1X2   % Push predefined literal: string 'double'
p     % Product of array. For strings it uses code points. Implicit display

Sie kennen alle vordefinierten Literale ... ich nicht ... Es war nicht genau das gleiche wie ich, aber es war natürlich das Produkt von 'double'. :)
Stewie Griffin

@StewieGriffin Ah, ich verstehe, also hast du so etwas benutzt 1X%p. Eigentlich kenne ich nur wenige vordefinierte Literale. Ich habe mich brutal 9:"@X1pDverändert Xund1
Luis Mendo

4

MATL , 6 Bytes, 3 Unikate, Luis Mendo

FFFTZF

Probieren Sie es online aus!

Ich habe die Ausgabe sofort erkannt

1+0i 0+1i -1+0i 0-1i

wie die 4-ten Wurzeln der Einheit, und ich wusste , dass die fftauf [0 0 0 1]in dieser Folge hätten.

Ich habe eine ganze Weile gebraucht, um herauszufinden, dass FFFTdas Druck machen würde, [0 0 0 1]und ich bin mir immer noch nicht sicher, wie es funktioniert. EDIT: Luis Mendo erklärte, dass Fund Tsind "klebrig", so eine Folge von Fund Twird sie automatisch horzcatzusammen, daher FFFTschiebt [0 0 0 1].

Dies wird in der Dokumentation kurz und bündig ausgedrückt (nachdem ich es nachgeschlagen habe):

Bei logischen Zeilenvektoren können die eckigen Klammern weggelassen werden. das heißt, die Notation [T F T]oder [TFT]kann vereinfacht werden TFT. Ein Trennzeichen kann erforderlich sein, wenn ein neues logisches Array folgt : TFT TT. In anderen Fällen ist dies jedoch nicht erforderlich : TFT3.5.


1
Fund Tsind "klebrig". So FFTdefiniert ein Zeilenvektor[false, false, true]
Luis Mendo

@ LuisMendo danke, das ist jetzt klar.
Giuseppe

4

Haskell , 29 Bytes, 15 Unikate, Laikoni

f<$>[1..74]
f 47='4'
f f1='3'

Probieren Sie es online aus!

Ich hatte vorher die beiden fast Lösungen:

do;d<-[2..74];'3':['4'|d==47]    -- 29,16
do;d<-[-41..31];'3':['4'|d==4]   -- 30,15

ahh, Laikonis Kommentar ließ mich denken, dass die Antwort ein einziger Ausdruck sein musste… am nächsten kam mir ["34"!!(0^x^2)|x<-[-46..27]](28, 18).
Lynn

1
Außerdem hatte ich keine Ahnung, dass Sie gleich danach ein Semikolon platzieren könnten do!
Lynn

1
Ja, ich hatte dort lange Zeit einen Platz, bevor ich vermutete, dass er gültig sein könnte.
H.PWiz

@Lynn Laikoni hat behauptet , dass die Lösung , ist ein einziger Ausdruck im Chat
H.PWiz


3

JavaScript (ES6), Brian H.

Vielen Dank an @Milk für die Korrektur der letzten nachfolgenden '5'

f=f=>1/44.4

console.log(f())

Eindeutige Zeichen: ., /, 1, 4, =, >,f


1
Dieser gibt die zusätzlichen 5 am Ende aus:_=_=>1/44.4
Milch

@milk Das sieht in der Tat besser aus. Lassen Sie mich wissen, wenn Sie es veröffentlichen möchten, und ich werde dieses löschen.
Arnauld

Das ist cool, du kannst deinen Beitrag einfach aktualisieren, wenn du willst. Ich habe das bekommen, indem ich deinen Riss aufgebaut habe.
Milch

sagte, es sei einfach: p
Brian H.

3

Wolfram Language (Mathematica) , 8 Bytes, 3 Unique, Jenny_mathy

7!!!/77!

Probieren Sie es online aus!

Aufschlüsselung: Factorial[7!!] / Factorial[77]Wo !!ist doppelt Fakultät.

Zuerst bemerke ich die lange Sequenz 0am Ende, also denke ich, dass es eine Art Fakultät sein kann. FactorIntegergibt den größten Faktor an 103, also versuche ich n/103!, und erhalte den nächstgrößeren (negativen) Primfaktor 73. Wenn man die Faktoren für einige Zeit ändert 105!/77!, gibt es meiner Meinung nach "es gibt bereits 3 Symbole 7, !und /der Weg, 105 zu erstellen, muss also von diesen Symbolen ausgehen!". Also habe ich versucht 7!!(was eines der wenigen Dinge ist, die ich versuchen sollte) und 105 als korrektes Ergebnis erhalten.




2

Gelee , 7 Bytes, 6 Unikate, Erik der Outgolfer

- Aus irgendeinem Grund habe ich mit einer nachgestellten Null im Ergebnis begonnen. Ohne sie hätte ich
8,16!PP
als Lösung gegeben.


8,⁴!PP0

Probieren Sie es online aus!

Wie?

8,⁴!PP0 - Main link of a program taking no arguments and no input
  ⁴     - literal sixteen
8       - literal eight
 ,      - pair = [8,16]
   !    - factorial (vectorises) = [8!, 16!] = [40320, 20922789888000]
    P   - product = 40320 × 20922789888000 = 843606888284160000
     P  - product (no effect) = 843606888284160000
      0 - literal zero (just gets printed)
        - leaving STDOUT displaying 8436068882841600000, as required

... 8,⁴!’Pfür 6 Bytes wären 6 eindeutige viel schwerer zu knacken gewesen, da das Ergebnis von 843585965494231681 ( 40319 × 2092278988799 ) nicht so faktoriell aussieht.


Alternative: 8µḤ!×! (mit
nachfolgendem

Oder 8,⁴!Pmit 2 nachgestellten Leerzeichen ( qoder einem anderen nicht implementierten Byte)
Jonathan Allan


2

PowerShell , 7 Bytes, 5 eindeutige Bytes, AdmBorkBork

1PB#---

Probieren Sie es online aus!

Die Ausgabe 1125899906842624ist gleich 2^50und 2^50 Bytesgleich 1 Pebibyte. Der eigentliche Code ist nur 3 Bytes, daher habe ich am Ende einen Kommentar hinzugefügt.


Nett. Ich hatte gedacht, dass das Anheften eines Kommentars die Leute für eine Schleife werfen würde, aber es sieht so aus, als ob ich mich geirrt hätte. :)
AdmBorkBork

2

Excel, 22 Bytes, 16 eindeutige Bytes, EngineerToast

Eine mögliche Lösung ist:

=BAHTTEXT(2^(480-300))

Die einzigartigen Charaktere sind =BAHTEX()^02348-.

Ich habe erkannt, dass BAHTTEXT beim Anzeigen der Ausgabe verwendet wurde. Durch die Rückübersetzung der Ausgabe vom Thailändischen ins Englische konnte ich den Wert der Zahl ermitteln. Ich vermutete, dass es eine Potenz von 2 ist, was es tatsächlich ist (nämlich 2 180 ). Der Ausdruck 480-300 = 180 wurde dann konstruiert, um sicherzustellen, dass die Lösung 22 Bytes mit 16 eindeutigen enthält.


2

Alice , 9 Bytes, 8 eindeutige Bytes, Leo

/Yr@
\no/

Probieren Sie es online aus!

Entfaltet ist das nrYo@.

n  negate the implicit empty string: creates the string "Jabberwocky".
r  range expansion: produces a string that starts with J, 
   goes up in ASCII order to w, down to c, and then up to y.
Y  separate this string into even and odd positions
o  output the even positions
@  terminate

Im Übrigen ist die Ausrichtung der Spiegel in der ersten Spalte völlig irrelevant, so dass dies leicht auf 7 eindeutige Bytes reduziert werden könnte.


Sie haben Recht mit den Spiegeln! Ich bin mit Alice zu rostig geworden :)
Leo


1

J , 8 Bytes, 6 eindeutige Bytes, Bolce Bussiere

;p.p:i.9

Probieren Sie es online aus!

Ausgabe:

23 _0.677447j0.296961 _0.677447j_0.296961 0.125003j0.726137 0.125003j_0.726137 _0.379097j0.630438 _0.379097j_0.630438 0.518498j0.521654 0.518498j_0.521654

Der offensichtliche Hinweis ist, dass in der gegebenen Ausgabe komplexe Zahlen immer als konjugierte Paare erscheinen. Es ließ mich das p.Verb vermuten , das zwischen einfachen Polynom- und Multiplikator- und Wurzelformen konvertiert.

Also habe ich versucht:

p. 23;(...those complex numbers)
   2 3 5 7.00001 11 13 17 19 23

Ja, mein Gedanke war richtig. Die Liste der Primzahlen ist einfach. Monadic reduziert ;die Liste der Box-Arrays auf einfache lineare. Der resultierende Ausdruck hat zwei ps und zwei Punkte, sodass die Byteanzahl perfekt ist.



0

Gelee , 8 Bytes , 6 einzigartig, Mr. Xcoder

7x7²¤ḌḤ²

Probieren Sie es online aus!

Wie?

7x7²¤ḌḤ² - Main link: no arguments & no input
7        - literal 7
    ¤    - nilad followed by link(s) as a nilad:
  7      -   literal 7
   ²     -   square -> 49
 x       - repeat elements -> [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7]
     Ḍ   - convert from a decimal list -> 7777777777777777777777777777777777777777777777777
      Ḥ  - double -> 15555555555555555555555555555555555555555555555554
       ² - square -> 241975308641975308641975308641975308641975308641926913580246913580246913580246913580246913580246916
         - implicit print
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.