Räuber Abschnitt
Die Cops-Sektion finden Sie hier .
Herausforderung
Ihre Aufgabe ist es, die Beiträge der Bullen in derselben Sprache und derselben Version zu übertreiben (z. B. Python 3.5 ≠ Python 3.4 , so dass dies nicht zulässig ist). Eine Übermittlung ist übertrieben, wenn die Länge in Bytes kürzer als die ursprüngliche Übermittlung ist. Sie müssen nur mindestens 1 Byte abwerfen, um eine Einreichung zu knacken. ZB wenn die Aufgabe darin bestand, 2 × n auszuführen , und die Vorlage die folgende war:
print(2*input())
Sie könnten den Cop überraschen, indem Sie Folgendes tun:
print 2*input()
Oder auch das (da Lambdas erlaubt sind):
lambda x:2*x
Veröffentliche dies mit dem folgenden Header:
##{language name}, <s>{prev byte count}</s> {byte count}, {cop's submission + link}
Zum Beispiel:
Python 2,
1612 Bytes, Adnan (+ Link zur Einreichung)lambda x:2*x
Berechnet A005843 (Offset = 0).
In diesem Fall haben Sie die Übermittlung geknackt .
Wertung
Die Person, die die meisten Einsendungen geknackt hat, ist der Gewinner.
Regeln
- Die Crack-Einreichung muss in derselben Sprache wie die Cop-Einreichung sein.
- Dieselbe Eingabe sollte zur selben Ausgabe führen (also sollte a (2) = 4 4 bleiben).
- Für Sprachen wie Python können Sie Bibliotheken importieren, die standardmäßig in der Sprache enthalten sind. (Also, keine Numpy / Sympy etc.)
- Eingabe und Ausgabe erfolgen beide dezimal (Basis 10).
Hinweis
Diese Herausforderung ist beendet. Der Gewinner der Räuber- Sektion ist feersum . Die endgültigen Ergebnisse für den CnR sind nachstehend aufgeführt:
- Feersum : 16 Risse
- Dennis : 12 Risse
- Undichte Nonne : 6 Risse
- Lynn : 4 Risse
- Meilen : 3 Risse
- Martin Ender : 2 Risse
- Emigna : 2 Risse
- jimmy23013 : 1 Riss
- Sp3000 : 1 Riss
- zufällig : 1 Riss
- Alephalpha : 1 Riss
- nimi : 1 Riss
- Zerstörbare Wassermelone : 1 Riss
- Dom Hastings : 1 Riss
(**)&2
. Ich habe es versucht2&(**)
und bin gescheitert. :((**)&2
funktioniert gut für mich: / aber das funktioniert auch.Gelee ,
54 Bytes , George V. WilliamsProbieren Sie es hier aus.
Ein verstecktes Feature!
Wenn ich mich richtig erinnere, ist
ÆḊ
(A) = sqrt (det (AA T )) n! mal das n-dimensionale Lebesgue-Maß eines Simplex aus n Eingabepunkten und dem Ursprung im m-dimensionalen Raum. Wenn n = 1, degeneriert es zur euklidischen Distanz. Immerhin nicht so komisch ...quelle
Ḋ
undḞ
liegen im UTF-16-Bereich. Dies würde diese Lösung zu 6 Bytes bei heterogener Codierung und 8 Bytes bei homogener Codierung machen. Hier ehrlich fragen.Hexagony ,
9133 Bytes, BlauEntfaltet:
Probieren Sie es online!
Sieht immer noch ein bisschen golfen aus, aber ich dachte, ich würde es posten, bevor mich FryAmTheEggman schlägt. ;)
Erläuterung
Hier sind einige farbcodierte Ausführungspfade:
Diese sind jedoch aufgrund des Golfspiels unnötig verworren. Hier ist der exakt gleiche Code mit einem genaueren Layout:
Das ist besser. Und schließlich ist hier ein Speicherdiagramm, in dem der rote Pfeil die anfängliche Position und Ausrichtung des Speicherzeigers (MP) angibt:
Das Wesentliche ist, dass ich iterativ Fibonacci-Zahlen an den drei mit f (i) , f (i + 1) und f (i + 2) bezeichneten Kanten berechne, während ich den Iterator an den Kanten A , B und C verfolge . Dabei werden die Rollen dieser Kanten nach jeder Iteration zyklisch ausgetauscht. Mal sehen, wie das passiert ...
Der Code beginnt auf dem grauen Pfad, der einige anfängliche Einstellungen vornimmt. Beachten Sie, dass f (i) bereits den richtigen Anfangswert von hat
0
.Jetzt ist der grüne Weg die Hauptschleife.
_
und>
sind nur Spiegel.Auf diese Weise bewegt sich der MP um das innere Triplett von Kanten und berechnet aufeinanderfolgende Fibonacci-Zahlen, bis er
n
Null erreicht. Dann wird endlich der rote Pfad ausgeführt:Mit Timwis HexagonyColorer und EsotericIDE erstellte Diagramme .
quelle
Haskell,
54 Bytes, xnorEinfaches Curry.
quelle
Stapel Katzen,
1413 Bytes, Feersummit den
-nm
Flags für +4 Bytes. Probieren Sie es online!Okay, diese Schleife war verrückt. Ich habe verschiedene Ansätze ausprobiert, z. B. Brute Forcing über ein reduziertes Alphabet und Brute Forcing
3x+2
oder den5x+4
Versuch, es zu erweitern, aber ich hätte nie erwartet, dass die Lösung tatsächlich eine Schleife enthält.Der beste Weg, um zu sehen, wie dies funktioniert, besteht darin, ein
D
Flag zum Debuggen hinzuzufügen (also mit auszuführen-nmD
) und das Debuggen für den obigen TIO-Link zu aktivieren. Eine{}
Schleife merkt sich die Stapelspitze am Anfang der Schleife und wird beendet, wenn die Stapelspitze wieder diesen Wert aufweist. Im Inneren der Schleife macht es Spaß, die drei obersten Elemente des Stapels zu subtrahieren und zu wechseln. Auf diese Weise kann die Schleife für so viele Iterationen ausgeführt werden.quelle
Sesos,
1411 Bytes, undichte NonneBerechnet n 2 . Probieren Sie es hier aus.
Hex-Dump:
Ab Montage:
quelle
1 + 3 + … + (2n–1)
anstelle vonn × n
:) berechnetWoefully
776759 Bytes, zerstörbare WassermeloneIch habe versucht, den Quellcode für diese Sprache zu lesen, aber es war zu verwirrend. Zum einen
ip[1]
ist eine Zeilennummerip[0]
die Spaltennummer, während diecp
Koordinaten umgekehrt verwendet werden. Manchmal wird jedoch der Wert voncp
zugewiesenip
. Ich habe es aufgegeben, zu verstehen, was das Programm tut, und habe einen Weg gefunden, die identische Befehlsfolge mit weniger Takten zu codieren.quelle
Brachylog ,
2721 Bytes, FatalizeProbieren Sie es online!
quelle
J,
1712 Bytes, MeilenSo ziemlich das gleiche wie das Original, nur mehr Golf. :)
i:
mit+1
Bereich im Vergleich zui.
ist nützlich (und komisch). Wenn du dasi.
hier verwendestn=0
wird das aber zum Glück falsch gelösti:
.Probieren Sie es hier online aus.
quelle
i:
Nullen für negative Werte. Meine Version war+/@(]!2*-)i.,]
.M,
106 Bytes, DennisMit n wird die n- te Fakultät von n berechnet . Das war eine lustige Übung!
Der Code kann als Jelly ausgeführt werden, sodass Sie ihn online testen können .
Erläuterung
quelle
Schneemann,
5044 Bytes, TürknaufProbieren Sie es online!
quelle
((}#1nG|#2nMNdE0nR2aGaZ::nM;aF;aM:nS;aF,nM*))
.Haskell,
15 bis14 Bytes, xnorIch habe ein paar Stunden lang erfolglos gelernt, "sinnlose" Syntax zu entschlüsseln ...
until
Ich fand das stattdessen.Oder für weniger gut aussehende 13 Bytes
until odd(+1)
.quelle
Python 2,
4340, xsotquelle
Pyke,
119 Bytes, SchlammfischProbieren Sie es hier aus!
Wie es funktioniert
quelle
hV~oX*o+
. Meine 5-Byte-Antwort warSDmX^
~o
ist ordentlich. Ich habe jedoch keine Ahnung, wasSDmX^
passiert.m
nur dasX
und nicht das^
? Das erklärt einiges.m
und ähnlich nur den nächsten Knoten verwenden. Irgendwelche Kommentare zu meinen Dokumenten etc?05AB1E ,
7,4, Emignaquelle
Jelly,
2221 Bytes, DennisIch habe mehrere Stunden damit verbracht, Jelly-Quellcode für den letzten zu lesen, also könnte ich diese "Fähigkeit" genauso gut anwenden. Ich hoffe, @Dennis teilt uns seine mathematischen Entdeckungen mit, die eine kürzere Formel erlauben (vorausgesetzt, es gibt etwas und nicht nur seltsame Geleetricks!).
quelle
J,
20 bis19 Bytes, MeilenDies berechnet das Produkt als Summe der quadratischen Fibonacci-Zahlen, die als Summe der Binomialkoeffizienten berechnet werden.
Zum Glück hat @miles selbst den Code gepostet, um Fibonacci-Zahlen in diesem Kommentar zu generieren .
quelle
Acc !! ,
526525 Bytes, DLoscIch habe keine Ahnung, wie das funktioniert, aber ich konnte eine winzige Verbesserung feststellen.
quelle
Haskell, 10 Bytes, xnor
Anwendungsbeispiel:
map ( gcd=<<(2^) ) [1..17]
->[1,2,1,4,1,2,1,8,1,2,1,4,1,2,1,16,1]
.So funktioniert es: Von der OEIS Seite wir sehen
a(n) = gcd(2^n, n)
oder in Haskell Syntax geschrieben:a n = gcd (2^n) n
. Funktionen mit dem Musterf x = g (h x) x
können über die Funktion=<<
: punktfreif = g =<< h
geschaltet werden,gcd=<<(2^)
was sich somit wieder in übersetztgcd (2^x) x
.quelle
Sesos,
149 Bytes, undichte NonneBerechnet n mod 16 . Probieren Sie es hier aus.
Verhexen:
Versammlung:
quelle
Python,
3917 Bytes, Destructible Watermelonquelle
05AB1E,
94 Bytes, EmignaProbieren Sie es online!
Berechnet stattdessen diese Funktion:
quelle
Hexagony ,
76 Bytes, AdnanEntfaltet:
Probieren Sie es online!
Gleiche Idee, etwas anderes Layout.
quelle
MATL,
1110 Bytes, Luis MendoAnstelle von -1 ^ length (array) werden die Elemente in Boolesche Werte (die immer 1 sind) konvertiert, sie werden negiert und das Produkt der Elemente wird genommen.
quelle
Jelly,
1110, DennisVektorisierte Version des gleichen Ansatzes.
Probieren Sie es online!
quelle
05AB1E,
108 Bytes, AdnanProbieren Sie es online aus .
quelle
µNÂʽ
für 5 Bytes. Vermutlich die geheime Version.Brachylog,
11 bis10 Bytes, FatalizeProbieren Sie es online!
Erläuterung
Brachylog ist eine von Prolog abgeleitete Sprache, deren größte Fähigkeit darin besteht, Dinge zu beweisen.
Hier beweisen wir diese Aussagen:
quelle
Jelly,
98 Bytes, DennisEs tut uns leid! Ich konnte Ihre beabsichtigte Lösung nicht finden.
Dies beruht auf der Tatsache, dass
C(n+k-1, k)
die Anzahl der Auswahlmöglichkeiten fürk
Werten
beim Ersetzen festgelegt ist.Hinweis: Dies ist ineffizient, da die möglichen Mengen generiert werden, um sie zu zählen. Vermeiden Sie daher die Verwendung großer Werte von n online.
Probieren Sie es online aus oder überprüfen Sie bis zu n .
Ich habe später eine weitere 8-Byte-Version gefunden, die effizient genug ist, um n = 1000 zu berechnen . Dadurch werden die Werte unter Verwendung des Binomialkoeffizienten berechnet, und es wird vermieden, die Listen zu generieren.
Probieren Sie es online aus oder überprüfen Sie bis zu n .
Erläuterung
quelle
M,
98 Bytes, Dennisquelle
QBasic,
30 bis29 Bytes, DLoscquelle