A iteração mínima de energia de um número é definida da seguinte maneira:
Ou seja, elevado ao dígito mais baixo em . Por exemplo, e .
A raiz de potência mínima de um número é definida como o número obtido pela aplicação repetida de até que um ponto fixo seja encontrado. Aqui está uma tabela das raízes mínimas de potência dos números entre 1 e 25:
n MPR(n)
--------------------------
1 1
2 1
3 531441
4 1
5 3125
6 4738381338321616896
7 1
8 16777216
9 1
10 1
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 1
21 21
22 1
23 279841
24 1
25 1
Desafio: Gere os números cuja raiz de energia mínima não seja igual a 1 ou a si mesma.
Aqui estão os primeiros 50 números nesta sequência:
3, 5, 6, 8, 23, 26, 27, 29, 35, 36, 39, 42, 47, 53, 59, 64, 72, 76, 78, 82, 83, 84, 92, 222, 223, 227, 228, 229, 233, 237, 239, 254, 263, 267, 268, 269, 273, 276, 277, 278, 279, 285, 286, 286, 287, 289, 296, 335, 338, 339, 342
Regras
- Você pode gerar os primeiros
n
números desta sequência (indexados em 0 ou 1), gerar on
termo th, criar um gerador que calcule esses termos, produza infinitamente muitos deles, etc. - Você pode receber e fornecer saída em qualquer base, mas os cálculos para MPR devem estar na base 10. Por exemplo, você pode receber entrada
###
(em unário) e saída### ##### ######
(em unário) - Você deve produzir números. Você não pode (por exemplo) produzir
"3", "5", "6"
, pois essas são cadeias de caracteres.3, 5, 6
e3 5 6
são ambos válidos, no entanto. Produzindo2 3
,"23"
outwenty-three
são todas as representações inválidos considerados do número23
. (Novamente, você pode usar qualquer base para representar esses números.) - Este é um código de golfe , portanto o código mais curto (em bytes) vence.
Respostas:
05AB1E , 8 bytes
Gera o enésimo número 1 - indexado
Experimente online!
Explicação
Opcionalmente, como uma lista infinita na mesma contagem de bytes:
Experimente online!
fonte
µ
eΔ
logo após o desafio ter sido postado e recebi exatamente a mesma resposta, mas estava me perguntando por que não funcionou ... Eu useiD
mais do queÐ
porque pensei que uma cópia teria sido usada pela função de ponto fixo e o outro pela função menor que, mas não levei em conta que precisava de mais uma cópia. Obrigado, Emigna, por resolver meu Enimga.Perl 6 , 49 bytes
Experimente online!
Retorna uma sequência infinita. Suponho que a seguinte versão de 45 bytes também funcione, mas não posso provar que o ponto fixo é sempre encontrado após n iterações.
fonte
J ,
413937 bytesExperimente online!
Este é um programa completo que imprime a sequência infinita. Uma ocasião muito rara em que um programa completo bate um verbo em J.
Como funciona
J ,
4139 bytesExperimente online!
Um verbo monádico. Dado um índice baseado em 1, retorna o número nesse índice. O rodapé verifica se os primeiros 20 termos estão corretos.
Ao ler a palavra "ponto fixo", pensei imediatamente "Ah, sim,
^:_
fará um ótimo trabalho". Então acabei com essa abominação de rostos zangados e tristes. E nem é um trem, é um único verbo .Ungolfed & Como Funciona
O número inteiro de precisão arbitrária
0x
é necessário para calcular o ponto de correção com precisão, por exemplo, do número 6.fonte
^:
, minha cabeça começa a doer no segundo deles :)(>:[(<(^{.@/:~&.":)^:_)echo])^:_]1x
_&(_&(]]+]>:(^{.@/:~&.":)^:_)>:)*
recebendo entrada como um número inteiro estendidoPitão , 10 bytes
Experimente online!
GZZQ
.f
Q
u^GshS`G
Z
O código raiz da energia mínima funciona encontrando um ponto fixo
u
de aumentar o número atualG
à potência do seu dígito mínimo, que é o mesmo que o primeiro dígito (h
) classificado lexicograficamente (S
) e depois convertido de volta para um número inteiro (s
).fonte
Gelatina , 10 bytes
Um link monádico usando um número inteiro
I
,, de STDIN, que gera as primeirasI
entradas.Experimente online!
(
*DṂƊƬṪ%@µ#
funciona para 10 também)Quão?
Contagens até iniciar um
n=0
atéinput
resultados truthy de uma função monadic são encontrados e produz essasn
s.A função aplica repetidamente outra função monádica iniciando com
x=n
e coleta os valores dex
até que os resultados não sejam mais exclusivos. (por exemplo:19
rendimentos[19]
;23
rendimentos[23,529,279841]
;24
rendimentos[24, 576, 63403380965376, 1]
; etc ...) e, em seguida, retira da fila o resultado (remove o valor mais à esquerda), complementa todos os valores (1-x
) e utiliza-oȦ
para produzir0
quando houver um zero na lista ou se estiver vazio.A função mais interna eleva a corrente
x
para todos os dígitos dex
e depois mantém o mínimo (fazer isso é uma economia de bytes em encontrar o dígito mínimo primeiro).fonte
ƬḊCȦ
lá. :-)Ṫ>
pega0
:(Mathematica,
5951 bytes-8 bytes graças a Misha Lavrov .
Função pura. Pega um número como entrada e retorna a lista de termos até esse número como saída. Nada muito complicado aqui.
fonte
FixedPoint
geralmente não é tão bom quanto//.
(abreviação deReplaceRepeated
) no código de golfe. Aqui, podemos salvar alguns bytes comSelect[Range@#,1<(#//.x_:>x^Min@IntegerDigits@x)!=#&]&
.Select[Range@#,#<(#//.x_:>x^Min@IntegerDigits@x)&]&
.Python 3 ,
9088 bytes-2 bytes por @mypetlion
Experimente online!
print
como uma expressão economiza dois bytes sobre aif
instrução using no Python 2.F
calcula o ponto de correção MPI; o resto fornece a sequência infinita para STDOUT.fonte
return m>x and F(m)or m
parareturn[int,F][m>x](m)
para salvar 2 bytes.Haskell,
6762 bytesRetorna uma lista infinita.
Experimente online!
fonte
Ruby , 52 bytes
Experimente online!
Imprime sequência infinita
fonte
$.
em vez dex
, salva inicialização)Java 10,
178173 bytesPorta da resposta Ruby do @GB , também é impressa indefinidamente.
Experimente online.
Explicação:
fonte
JavaScript (Node.js) , 75 bytes
Experimente online!
fonte
JavaScript (Node.js) ,
98908986 bytes-3 bytes obrigado @Conor O'Brien
Experimente online!
Parece que um gerador é mais curto do que retornar uma matriz de
n
números?Ou imprimindo infinitamente - 72 bytes
Experimente online!
fonte
if(x>n)yield n
ax>n&&(yield n)
como uma expressão)Gelatina , 14 bytes
Experimente online!
fonte
JavaScript (Chrome),
7877 bytesExperimente online!
Porta da minha própria solução Python 3 . A versão mais recente do Chrome suporta
BigInt
(testada no meu PC). Não tente esse código como está no seu navegador.fonte
Raquete ,
270, 257233 bytesExperimente online!
Esta é a minha primeira finalização de raquete , para que possa definitivamente ser jogada ainda mais. No entanto, estou um pouco contente, pelo menos por conseguir resolver a tarefa.
Mais legível:
fonte
Axioma, 168 bytes
A função para usá-lo é z (); aqui imprime números que têm a correlação um número, não 1, não ele próprio e são menores que seu argumento.
fonte
Visual Basic .NET (.NET Core) , 290 bytes (inclui importações)
Experimente online!
Requer a seguinte importação:
Isso usa uma função iteradora para retornar uma lista infinita (carregada lenta) de números inteiros que atenda aos critérios. Utilizado
BigInteger
para evitar restrições de tamanho, principalmente em cálculos intermediários.Sem golfe:
fonte
Lisp comum , 238 bytes
Experimente online!
fonte
APL (NARS), 96 caracteres, 192 bytes
teste (o resultado parcial do argumento 22 parece muito grande, então <21 argumentos não sei se pode estar ok)
fonte
Python 3 , 102 bytes
Experimente online!
Decidiu tentar uma solução Python 3 que imprime diretamente o enésimo termo na sequência.
fonte
C (clang) +
-DL=long long
-lm
, 213 bytesExperimente online!
Função
g(j)
imprime os primeirosj
termos da sequência.fonte
a=...
para salvar uma dúzia de bytes.x>1
invés dex!=1&x>0
.Casca ,
161210 bytesEconomizou 6 bytes graças a H.PWiz.
Experimente online!
Explicação
fonte
>¹
aqui comS>
. Isso permite que você coloque tudo em uma linha. Além disso, parece que você saiu por engano no link anteriorJaponês , 44 bytes
Experimente online!
Substancialmente diferente da outra resposta japonesa.
Explicação:
Em termos de possibilidades futuras de golfe, chamo muitas funções manualmente para um número, o que, suspeito, pode ser reduzido, mas não sei como.
fonte