Stellen Sie den mutierten Quellcode wieder her (für Räuber)

8

Dies ist der Begleitthread zur Hauptaufforderung " Wiederherstellen des mutierten Quellcodes (Link)" . Wenn Sie die Antwort eines Polizisten erfolgreich geknackt haben, geben Sie Ihre Lösung als Antwort auf diese Frage an.

Zur Erinnerung, hier noch einmal die Räuberregeln aus der Hauptherausforderung:

Der Räuber versucht, das Programm des Polizisten (das Aufgabe Nr. 1 abschließt) in ein Programm umzuwandeln, das Aufgabe Nr. 2 (nicht unbedingt das vom Polizisten geschriebene Originalprogramm) in dem vom Polizisten angegebenen Bearbeitungsabstand abschließt.

Eine bereits geknackte Einreichung kann nicht erneut geknackt werden (nur der erste Räuber, der eine Einreichung knackt, erhält eine Gutschrift).

Gehen Sie nach dem Knacken einer Einreichung wie folgt vor:

  • Veröffentlichen Sie eine Antwort auf die zugehörige Frage dieser Herausforderung (Link) und geben Sie die Sprache, Ihre Lösung und einen Link zur ursprünglichen Antwort an.
  • Hinterlasse einen Kommentar mit dem Text "Cracked", der auf deine gepostete Antwort verweist.
  • Bearbeiten Sie die Antwort des Polizisten, wenn Sie über Bearbeitungsrechte verfügen (wenn Sie dies nicht tun, warten Sie entweder, bis jemand anderes mit den erforderlichen Berechtigungen dies für Sie tut, oder schlagen Sie eine Bearbeitung vor).

Und Wertung:

Wenn ein Räuber die Einreichung eines Polizisten erfolgreich knackt, erhöht sich die Punktzahl des Räubers um die Bearbeitungsentfernung dieser Einreichung. Zum Beispiel verdient ein Räuber, der eine Einreichung mit einer Bearbeitungsentfernung von 3 und eine mit einer Entfernung von 5 knackt, 8 Punkte. Der Räuber mit der höchsten Punktzahl gewinnt. Bei einem Unentschieden gewinnt der Räuber, der zuerst die Punktzahl erzielt hat.

Bestenliste

Es gibt noch keine geknackten Einsendungen.

Türknauf
quelle
2
Wer führt die Rangliste? Außerdem denke ich, dass die Punktzahl des Lesers steigen sollte, wenn die Entfernung geringer ist, da mir das schwieriger erscheint.
Timtech

Antworten:

3

Python 2, FryAmTheEggman

x=n=1;j=input();
while j>2:
    x,n=n,x+n;j-=1;
    ##while~-all(n%i for i in range(2,n)):n+=1;
print n

12 Bearbeitungen verwendet. Setzen Sie ein Extra ein #, um es 13 zu machen.

Sp3000
quelle
Sie müssen alle 13 Änderungen verwenden, dies kann jedoch leicht behoben werden, indem Sie dem Kommentar ein weiteres Zeichen hinzufügen.
Türknauf
Verdammt, ich habe vergessen, dass Kommentare eine Sache waren: / Ursprünglich habe ich den Bereich so geändert, dass er bei 1 beginnt, und das ~; P
FryAmTheEggman
@FryAmTheEggman Wenn Sie keine Kommentare wünschen, können Sie den Bereich von nbis ändern n, sodass der Wert für allausgewertet wird True. Aber ~-Trueist False, so läuft die Weile nicht.
Sp3000
Ich wollte keine Kommentare, es machte es nur viel einfacher, als ich gedacht hatte. Abgesehen davon ist das eine viel schönere Idee als das, was ich mir
ausgedacht habe
3

Python 2, Sp3000

from fractions import*
n=input()
k,=P=[1]
while n>len(P):k+=1;z=reduce(lambda x,y:x+y,P[~1:]);P+=[z]#*(gcd(z,k)<2)
print P[-1]
Feersum
quelle
Bei näherer Betrachtung unterscheidet sich dies geringfügig von dem Ansatz, den ich ursprünglich hatte. Interessant ...
Sp3000
3

J, grc

   f=:3 :'{.+/(!|.)i.y'

   f 45
1134903170
randomra
quelle
2

Python 3, Sp3000

x=n= int(input())       # 3
P = [1,1]               #+2 = 5
k = 2
while n >=len(P):       #+1 = 6
 k += 1
 for x in P:
  if k%x ==~0: break    #+1 = 7
 else: P += [P[-2]+x]   #+7 = 14
print(x)
Feersum
quelle
1

Python 3, viel Spaß

a,c,n=1,1,int(input())
while n-1:
 #c+=1
 ##########list(map(c.__mod__,range(2,46))).count(0):
 a,c=a+c,a
 n-=1
print(c)

Das Fibonacci-Programm war seltsamerweise schon da ... brauchte nur 5 Änderungen, um es zu bekommen.

Feersum
quelle
Ja, ich habe es am falschen Ende entworfen (und gepostet, bis Sp3000 es entdeckt hat), also sieht es ein bisschen komisch aus.
Matsjoyce
1

Python 2, Pietu 1998

f=lambda p,i:p if p[45:]else f(p+[i]#f all(i%q for q in p[1:])else
,p[-1]+i)
print f([1,1,1],2)[input('!')]

Ich habe 9 Bearbeitungen verwendet, um ein Fibonacci-Programm zu erhalten.

Feersum
quelle
@ MartinBüttner Ich habe 12. Siehe das sinnlose Argument zu input.
Feersum
Nun ... ich glaube das würde das ausgeben !.
Wenn
@ Pietu1998 Was ist falsch daran, eine Eingabeaufforderung für Benutzer einzugeben?
Feersum
Nichts, aber das ist operativ anders.
PurkkaKoodari
1

JAGL, globby

T~2]d]2C{cSdc+c]}wSP

Es ist vielleicht nicht der effizienteste Ansatz, es ist fast definitiv nicht der Code des Cop, aber es funktioniert und es ist 12 entfernt.

matsjoyce
quelle
1

Ruby, Histokrat

p [x=1,y=1,*(1..200).map{|i|z=y;y+=(y*x**(i-1)+x%2).divmod(i)[2-1]?x:1;x=z;y}].-([x-1])[gets.to_i-1]
Vektorisiert
quelle