Recupere el código fuente mutado (para ladrones)

8

Este es el hilo conductor del desafío principal Recuperar el código fuente mutado (enlace) . Si ha descifrado con éxito la respuesta de un policía, publique su solución como respuesta a esta pregunta.

Como recordatorio, aquí están las reglas de ladrón del desafío principal nuevamente:

El ladrón intentará cambiar el programa del policía (que completa la Tarea # 1) en un programa que complete la Tarea # 2 (no necesariamente el programa original escrito por el policía) en la distancia de edición especificada por el policía.

Un envío ya agrietado no se puede volver a agrietar (solo el primer ladrón que descifra un envío obtiene crédito).

Después de descifrar un envío, haga lo siguiente:

  • Publique una respuesta a la pregunta adjunta (enlace) de este desafío , proporcionando el idioma, su solución y un enlace a la respuesta original.
  • Deje un comentario con el texto "Agrietado" que se vincula a su respuesta publicada.
  • Edite la respuesta del policía si tiene privilegios de edición (si no los tiene, espere hasta que otra persona con los privilegios necesarios lo haga por usted o sugiera una edición).

Y puntuación:

Si un ladrón descifra con éxito el envío de un policía, la puntuación del ladrón aumenta en la distancia de edición de ese envío. Por ejemplo, un ladrón que descifra un envío con una distancia de edición de 3 y uno con una distancia de 5 gana 8 puntos. El ladrón con el puntaje más alto gana. En caso de empate, el ladrón que obtuvo el puntaje primero gana.

Tabla de clasificación

Todavía no hay envíos descifrados.

Pomo de la puerta
fuente
2
¿Quién está manteniendo la clasificación? Y también, creo que la puntuación del lector debería aumentar más si la distancia es menor, ya que eso me parecería más difícil.
Timtech

Respuestas:

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

Usó 12 ediciones. Pon un extra #para hacerlo 13.

Sp3000
fuente
Debe usar las 13 ediciones, pero eso se puede solucionar fácilmente agregando otro carácter en el comentario.
Pomo de la puerta
Maldición, olvidé que los comentarios eran una cosa: / Originalmente cambié el rango para comenzar en 1 y
eliminé
Si desea @FryAmTheEggman no hay comentarios, se puede cambiar el rango de ser de na n, de modo que las allevalúa a True. Pero lo ~-Truees False, así que el tiempo no se ejecutará.
Sp3000
No "quería" ningún comentario, simplemente hizo esto mucho más fácil de lo que pensé que sería. Además de eso, es una idea mucho más ordenada de lo que se me ocurrió;)
FryAmTheEggman
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
fuente
En una inspección más cercana, esto es ligeramente diferente al enfoque que tenía originalmente. Interesante ...
Sp3000
3

J, grc

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

   f 45
1134903170
randomra
fuente
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
fuente
1

Python 3, matsjoyce

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)

El programa Fibonacci ya estaba extrañamente ahí ... solo necesitaba 5 ediciones para obtenerlo.

Feersum
fuente
Sí, lo diseñé desde el extremo equivocado (y lo publiqué, hasta que Sp3000 lo descubrió), por lo que se ve un poco extraño.
matsjoyce
1

Pitón 2, Pietu1998

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('!')]

Utilicé 9 ediciones para obtener un programa de Fibonacci.

Feersum
fuente
@ MartinBüttner Tengo 12. Vea el argumento sin sentido para input.
feersum
Bueno ... creo que esto generaría el !. Aún aceptando esto como válido, puedes poner cualquier carácter en el comentario,
PurkkaKoodari
@ Pietu1998 ¿Qué tiene de malo tener un aviso sobre la entrada del usuario?
feersum
Nada, pero esto es operacionalmente diferente.
PurkkaKoodari
1

JAGL, globby

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

Puede que no sea el enfoque más eficiente, casi definitivamente no es el código del policía, pero funciona, y está a 12 de distancia.

matsjoyce
fuente
1

Ruby, histocrat

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]
Vectorizado
fuente