Recupere o código fonte mutado (para assaltantes)

8

Esse é o encadeamento complementar para o desafio principal Recuperar o código-fonte mutado (link) . Se você conseguiu solucionar a resposta de um policial com êxito, poste sua solução como resposta a esta pergunta.

Como lembrete, aqui estão as regras do ladrão do desafio principal novamente:

O ladrão tentará alterar o programa do policial (que conclui a Tarefa 1) em um programa que conclui a Tarefa 2 (não necessariamente o programa original escrito pelo policial) na distância de edição especificada pelo policial.

Um envio já quebrado não pode ser quebrado novamente (somente o primeiro ladrão que quebra um pedido recebe crédito).

Depois de quebrar um envio, faça o seguinte:

  • Poste uma resposta para a pergunta que acompanha o desafio (link) , fornecendo o idioma, sua solução e um link para a resposta original.
  • Deixe um comentário com o texto "Rachado" que vincula a sua resposta postada.
  • Edite a resposta do policial se você tiver privilégios de edição (caso contrário, aguarde até que alguém com os privilégios necessários o faça por você ou sugira uma edição).

E pontuação:

Se um ladrão quebrar com êxito o envio de um policial, a pontuação do ladrão aumentará pela distância de edição desse envio. Por exemplo, um ladrão que quebra uma submissão com uma distância de edição de 3 e um com uma distância de 5 ganha 8 pontos. O ladrão com a maior pontuação vence. Em caso de empate, o ladrão que obteve a pontuação vence primeiro.

Entre os melhores

Ainda não existem envios rachados.

Maçaneta da porta
fonte
2
Quem está mantendo a tabela de classificação? E também acho que a pontuação do leitor deve aumentar mais se a distância for menor, pois isso me pareceria mais difícil.
Timtech

Respostas:

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

Usadas 12 edições. Coloque um extra #para torná-lo 13.

Sp3000
fonte
Você precisa usar todas as 13 edições, mas isso pode ser facilmente corrigido adicionando outro caractere no comentário.
Maçaneta
Droga, eu esqueci comentários eram uma coisa: / Originalmente eu mudei o intervalo para iniciar em 1 e removeu o ~; P
FryAmTheEggman
@FryAmTheEggman Se você não quiser comentários, pode alterar o intervalo de para npara n, para que seja allavaliado como True. Mas ~-Trueé False, então o tempo não vai correr.
Sp3000
Eu não "queria" nenhum comentário, apenas tornava isso muito mais fácil do que eu pensava. Além disso, essa é uma ideia muito mais organizada do que a que eu
criei
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
fonte
Em uma inspeção mais detalhada, isso é um pouco diferente da abordagem que eu tinha originalmente. Interessante ...
SP3000
3

J, grc

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

   f 45
1134903170
randomra
fonte
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
fonte
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)

Estranhamente, o programa Fibonacci já estava lá ... eram necessárias apenas 5 edições para obtê-lo.

feersum
fonte
Sim, eu o projetei do lado errado (e o publiquei até o Sp3000 avistá-lo), então parece um pouco estranho.
matsjoyce
1

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

Eu usei 9 edições para obter um programa Fibonacci.

feersum
fonte
@ MartinBüttner eu tenho 12. Veja o argumento inútil para input.
feersum
Bem ... eu acredito que isso produziria o !. Ainda aceitando isso como válido, você pode colocar qualquer caractere no comentário, #
PurkkaKoodari 30/12/2014
@ Pietu1998 O que há de errado em ter um prompt na entrada do usuário?
feersum
Nada, mas isso é operacionalmente diferente.
PurkkaKoodari
1

JAGL, globby

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

Pode não ser a abordagem mais eficiente, mas quase definitivamente não é o código do policial, mas funciona e fica a 12 quilômetros de distância.

matsjoyce
fonte
1

Ruby, histocrata

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]
Vetorizado
fonte