Sequenzen stehlen: Cops

10

Das sind . Dies ist der Cops- Thread. Den Räuberfaden finden Sie hier .

Seit ich der Site beigetreten bin, habe ich eine Reihe von OEIS-Herausforderungen (Online Encyclopedia of Integer Sequences) festgestellt. Es scheint nur fair zu sein, dass wir eine Herausforderung für Polizisten und Räuber haben, die ein für alle Mal bestimmt, wer der Meister der Online-Ganzzahlsequenzen ist.

Bearbeiten: Um triviale Antworten zu vermeiden, verlieren Polizisten 1/2 Punkt für jede Einsendung, die geknackt wird. Außerdem sind für die Zwecke dieser Herausforderung konstante Sequenzen nicht zulässig. Dies gilt nur für Lösungen, die nach dieser Bearbeitung veröffentlicht wurden.

Cops

Schreiben Sie ein Programm oder eine Funktion, die ohne Eingabe deterministisch eine Sequenz aus dem OEIS druckt . Durch Löschen einer Teilmenge der Zeichen muss Ihr Programm in der Lage sein, eine andere OEIS-Sequenz zu drucken, wenn es in derselben Sprache ausgeführt wird. Die neue Sequenz muss völlig neu sein, nicht nur die erste mit einem anderen Namen oder einem anderen Versatz. Keine der Sequenzen kann einfach ein wiederholter konstanter Wert sein.

Sie müssen die erste Funktion zusammen mit dem Namen der OEIS-Sequenz angeben, damit die Richtigkeit überprüft werden kann. Es ist in Ordnung, wenn das Verhalten in Bezug auf den MAX_INT-Wert Ihrer Sprache oder 256 fraglich wird, je nachdem, welcher Wert größer ist.

Räuber

Löschen Sie Zeichen aus der Übermittlung eines Cop, sodass Ihr neues Programm eine andere Sequenz vom OEIS ausgibt. Geben Sie die neue Funktion zusammen mit dem Namen der neuen OEIS-Sequenz an. Hier ist ein Dienstprogramm, mit dem Sie sicherstellen können, dass Ihre Übermittlung gültig ist (dh Zeichen werden ohne lustige Geschäfte gelöscht. Überprüft die Reihenfolge selbst nicht.)

Es liegt in Ihrem besten Interesse, so viele Zeichen wie möglich aus der Einreichung des Cop zu löschen. Wenn ein anderer Räuber (außer dem Cop, der das ursprüngliche Programm verfasst hat) vorbeikommt und eine kürzere Lösung findet, die eine andere Reihenfolge findet, stiehlt dieser Räuber Ihren Standpunkt. (Beachten Sie, dass das einfache Abspielen von Zeichen und das Drucken derselben Sequenz nicht ausreicht, um den Punkt zu stehlen.)

Regeln & Wertung

Wenn nach einer Woche niemand in der Lage war, Ihre Lösung zu knacken, können Sie Ihre Lösung als sicher markieren, indem Sie das zweite Programm zusammen mit dem Namen der von ihm generierten Sequenz angeben.

Sie erhalten einen Punkt für jede sichere Veröffentlichung und einen Punkt für jede Einsendung, die Sie knacken. Cops verlieren 1/2 Punkt für jede geknackte Einreichung. Beachten Sie, dass ein anderer Räuber jederzeit Ihren Punkt aus der geknackten Einreichung stehlen kann, indem er ein kürzeres Programm bereitstellt, das eine andere Sequenz ergibt.

Cops dürfen nur eine Herausforderung pro Sprache und Person posten.

Der Spieler mit den meisten Punkten am 7. Juli um 12:00 UTC gewinnt.

vroomfondel
quelle
Sandbox-Beitrag: codegolf.meta.stackexchange.com/a/13042/66460
vroomfondel
1
Diese Herausforderung ist sehr ähnlich. Ich werde es nicht betrügen, aber ich denke, das ist wahrscheinlich ein Duplikat.
FryAmTheEggman
1
@FryAmTheEggman ah, habe das nicht gesehen. Ich denke nicht, dass es ein ziemlicher Betrug ist, wenn man die Entfernung hämmert = / löscht und die Räuber viel mehr Spielraum haben, um unbeabsichtigte Antworten zu finden, aber es ist ähnlicher, als ich es gerne hätte.
Vroomfondel
1
Danke, @rogaos. Das war die Antwort, die ich auf die erste Frage erwartet hatte, also keine Sorge. Ich habe ein paar Ideen für Cops, hoffentlich bekomme ich morgens ein paar Minuten Zeit, um sie auszuarbeiten.
Shaggy
3
Ich denke, dass Golf gegen Levenstein Distanz dies wesentlich anders macht. Cops müssen drastisch unterschiedliche mögliche Lösungen in Betracht ziehen.
Nathan Merrill

Antworten:

1

C, A000217, 239 Bytes Gebrochen

Das ist kein also habe ich mich nicht darum gekümmert.

#include <stdio.h>
#include <limits.h>
int main()
{
    int i, n, temp = 0;
    for(i = 0; i < INT_MAX; i++)
    {
        n = 0;
        temp = i;
        while(temp)
            n+=temp--;
        printf("%d, ", n);
    }
    return 0;
}

Sequenz: https://oeis.org/A000217

Govind Parmar
quelle
1
@rogaos Derjenige, der von diesem Code geknackt wird, ist nicht konstant (zumindest der, den ich kenne)
Govind Parmar
Zur Vereinfachung durch Räuber in Bytes bearbeitet.
Stephen
1
geknackt?
nmjcman101
@rogaos Ich denke, dies könnte besser geknackt werden als meins, wenn man es konstant macht, aber ich denke, es ist interessanter, nicht konstant zu sein, also würde ich dafür stimmen, dass dies keine Ausnahme von der konstanten Regel ist
nmjcman101
1
@ nmjcman101 fair genug, da Govind nicht beabsichtigte, dass es eine Konstante ist. Meinen Kommentar oben löschen.
Vroomfondel
1

Python 2, 273 Bytes, geknackt

Anfangssequenz: A004442

import zlib, base64;exec(zlib.decompress(base64.b64decode('eJzLtDUAAAHoANc=')))
while True:print eval(zlib.decompress(base64.b64decode('eJwzAgAAMwAz')))^eval(zlib.decompress(base64.b64decode('eJwzjssEAAHBAPs='))),;exec(zlib.decompress(base64.b64decode('eJzL1LY1BAAC1AED')))

Probieren Sie es online aus!

juniorRubyist
quelle
geknackt
nore
2
Mega geknackt (glaube ich)
Stephen
1

MOO, 86 Bytes, sicher

a=0;b=1;while(a>-1)a=$math_utils:sum(a,a);a=max(1,a);notify(player,tostr(a));endwhile

Druckt Zweierpotenzen (A000079).

Lösung:

a = 1; während (a> -1) a = $ math_utils: Summe (a, a, a); benachrichtigen (Spieler, tostr (a)); endwhile (die stattdessen Potenzen von 3 (A000244) druckt)

pppery
quelle
0

PHP , 20 Bytes geknackt

for(;;)echo+!$i,",";

Probieren Sie es online aus!

Drucksequenz https://oeis.org/A000012

Jörg Hülsermann
quelle
Ihre Originalversion knackt diese Version.
Vroomfondel
Gebrochen
Peter Taylor
Hatten Sie eine Lösung für die erste? Wenn ja, sollten Sie zurückrollen.
Vroomfondel
1
@rogaos, ich habe die aktuelle Version geknackt, ohne zu sehen, dass sie sich geändert hat. Ein Zurückrollen würde ein Durcheinander verursachen.
Peter Taylor
1
@rogaos Sie sollten Sequenzen verbieten, die einen konstanten Wert zurückgeben
Jörg Hülsermann
0

cQuents (älteres Commit), 10 Bytes, geknackt

=0,1,1:z+y

Dies ist immer noch eine stark WIP-Sprache, aber ich habe den Interpreter so gepatcht, dass er funktioniert. Klicken Sie auf den Sprachnamen für den Github-Link.

Dies gibt die Fibonnacci-Sequenz aus: A000045

Erläuterung:

(weil ich keine Dokumentation habe und nicht erwarte, dass Sie meinen Dolmetschercode lesen)

=0,1,1      Set start to [0,1,1]
      :     Mode: sequence
       z+y  Each term is the previous two terms added together
            Because there is no input, output the whole sequence

Wenn konstante Sequenzen noch erlaubt wären, wäre dies super einfach auszurauben.

Stephen
quelle
geknackt
Leaky Nun
Diese Sprache ist ausgezeichnet
vroomfondel
@rogaos es ist noch nicht fertig, nirgendwo in der Nähe, aber danke :)
Stephen