Paul é um dos seus conhecidos belgas e deseja que você crie um programa que produz pelo menos uma das cinco seqüências a seguir :
12496=>14288=>15472=>14536=>14264
14264=>12496=>14288=>15472=>14536
14536=>14264=>12496=>14288=>15472
15472=>14536=>14264=>12496=>14288
14288=>15472=>14536=>14264=>12496
Representa os amigos dos quais ele mais se orgulha e gostaria de comer com eles. Paulo também acha que o número 6 é perfeito, e esse é o único número que vale a pena usar. Portanto, você não pode usar nenhum outro dígito além de "6" no seu código (0 a 5 e 7 a 9 são proibidos). Seu programa não pode receber nenhuma entrada. A saída pode conter lixo antes e / ou após a sequência, mas deve conter pelo menos uma das seqüências acima.
Por exemplo, esta é uma saída válida:
220frefze
f**14288=>15472=>14536=>14264=>12496**fczfe fz**15472=>14536=>14264=>12496=>14288**zfe
fzehth
Eu "levemente" sugeri a pergunta como eu espero que isso seja resolvido, mas como sabe? Talvez haja uma maneira melhor ... Espero que você se divirta.
Este é o código-golfe: a menor pontuação em bytes vence.
Respostas:
05AB1E ,
1817 bytesExperimente online!
Explicação
Em resumo, calculamos cada número como
f(n+1) = sum(divisors(f(n)) - f(n)
fonte
Pyke, 16 bytes
Experimente aqui!
Sempre que um literal de cadeia de caracteres está no final de um programa, ele o troca com o token logo antes, economizando 1 byte em casos como este. A
factors
função do Pyke não inclui o número em si nem 1. Se os números fossem permitidos, 1 byte poderia ser salvo substituindo-ow$
por4
Pyke, 21 bytes
Experimente aqui!
Crie uma lista dos números necessários e os junte. Não é muito interessante, além do truque com as cordas.
fonte
MATLAB, 44 bytes
Experimente online!
Eu não encontrei um padrão nos números (e seria difícil usá-lo para qualquer coisa, pois não posso usar números), por isso vou apenas para a abordagem ingênua.
'=>@EBIJ=@>DDIJ=A@C>IJ=@A?BIJ=@>B@'
é a sequência'12496=>14288=>15472=>14536=>14264'
quando 12 é adicionado aos valores ASCII. Agora, insira essa sequência, subtraia6+6
e concatene com a sequência vazia''
para convertê-la em uma matriz de caracteres.fonte
=>
.Caracteres JavaScript (ES6), 57 bytes / 47 (UTF-8)
Obrigado ao user5090812 por 10 B de salvamento
Explicação
Primeiro, criamos uma matriz e a preenchemos com os caracteres da string
バ㟐㱰㣈㞸
. Em seguida, fazemos um loop sobre a string (a
tem o valor do elemento atual) e alteramos o caractere para seu código de caractere. Em seguida, juntamos todos os valores na matriz por=>
.Antigo: 67 bytes
Explicação
Primeiro, criamos uma matriz de comprimento 5. Em seguida, alteramos os valores da matriz em cada índice para o código de caractere no mesmo índice da string
バ㟐㱰㣈㞸
, que são os números de todos os amigos de Paul em ordem. Quando chegamos a isso, juntamos a matriz e usamos=>
como separador.Uso
Para usá-lo, basta executar o seguinte:
Resultado
fonte
Ruby, 36 bytes (26 caracteres)
Porque porque não? Chato como o inferno.
versão mais antiga - 53 bytes
Explicação: a codificação dos números na base 25 fornece as 5 seqüências sem seis, para decodificá-las, só tenho que representar o número 25 usando apenas 6: (6-1) (6-1) => ~ -6 ~ -6
fonte
Perl 6 ,
6359 bytesDecodifica os números da base 25, porque essa é a única base suportada pelo
.parse-base
(2 a 36) em que nenhum deles possui dígitos inválidos.Agradecimentos a Neil por -3 bytes.
Perl 6 ,
8275 bytesDecodifica o número
15472
na base 36 e, em seguida, gera a sequência calculando cada número como a soma dos divisores adequados do número anterior.Perl 6 , 69 bytes (47 caracteres) - não-concorrentes
Não usa nenhum dos dígitos ASCII proibidos, usa dígitos Unicode do bloco árabe-indicador (2 bytes cada)! As
{ }
interpolações de strings garantem que sejam analisadas como literais numéricos Perl 6 e, em seguida, strifificadas para suas representações ASCII.Ok, isso é trapaça - é por isso que eu não a usei como minha principal resposta ... :)
fonte
--$/*$/
?--($/=6)*$/)
.Geléia ,
54 bytesImprime todas as cinco cadeias. Aproveita o fato de que a saída de "lixo" é permitida e enterra as cinco seqüências em 10 3003 caracteres de saída.
Como funciona
fonte
C,
948477 bytesStoopid simple. Agradecimentos especiais @Neil
f () {printf ("% d =>% d =>% d =>% d =>% d", '~' 'r' - 'd', '~' 'd' - 'h', ' ~ ' ' r '-' L ',' ~ ' ' z '+' d ',' ~ '*' t '-' P ');fonte
char*m
interiorfor()
para salvar um byte, além de tornar a função reutilizável (condição necessária das funções). Além disso, você gera um nulo à direita;*++m
consertaria isso. Além disso, você pode salvar alguns bytes subtraindo 60 em vez de 66:g(){for(char*m="!mnpuryzmpnttyzmqpsnyzmpqoryzmpnrp";*++m;)putchar(*m-66+6);}
.initial declaration used outside C99 mode
mas estou feliz em simplificar o putchar. Obrigado!PHP,
736360 bytesCorra com
-nr
.um pouco menos preguiçoso: tomou cordas lista de como
=>1(ascii)(ascii)
isto é:
124
,96
,=>1
,42
,88
,=>1
,54
,72
,=>1
,45
,36
,=>1
,42
,64
,imprimir
=>1
por índice de string, acrescentar código asciidemolir
fonte
C ++, 92 bytes
fonte
PHP, 53 bytes
Despejo hexagonal:
Resultado:
Explicação:
Cada uma das seções inteiras de cinco dígitos é codificada como um pequeno endian curto não assinado, depois é concatenada e o resultado é compactado em gzip. Isso produz um byte steam que não possui caracteres de dígito incorreto, que é então codificado em uma string. Para extrair, descompacte o gzip do fluxo, descompacte os shorts de dois bytes, interprete cada um como uma sequência e junte-se a ele
>=
.fonte
Java 8, 134 bytes
Golfe:
Programa completo e não-destruído:
fonte
Lote, 191 bytes
Estimo que levaria um mínimo de 32 bytes para calcular cada número usando apenas
6
s mais outros 32 para imprimi-los, o que já é 192 bytes, então estou ganhando calculando a cadeia amigável. Além disso, acho que cinco%
segundos seguidos é um recorde para mim. Além disso, truque de lote puro: o%n%
é substituído antes dafor
avaliação do loop, para que o loop calcule todos os fatores den
e os subtraian
, resultando na negação do resultado desejado.fonte
Gelatina , 12 bytes
Imprime a quarta corda e nada mais.
Experimente online!
Como funciona
fonte
Python 2,
7872 bytesEditar - Obrigado a Stewie Griffin por salvar 6 bytes!
Além disso, outra solução seria produzir todas as permutações possíveis. O OP diz que o lixo está bom.
Há muita redundância na conversão de
int
oulist
parastr
. Acho que isso seria mais fácil em algumas línguas esotéricas, mas não conheço nenhuma delas.fonte