Definições
Resíduos quadráticos
Um número inteiro é chamado de módulo quadrático de resíduos se existir um número inteiro x tal que:
O conjunto de resíduos quadráticos módulo pode ser simplesmente calculado observando os resultados de para .
A sequência do desafio
Definimos como o número mínimo de ocorrências do mesmo valor para todos os pares dos resíduos quadráticos módulo .
Os primeiros 30 termos são:
Este é o A316975 (enviado por mim).
Exemplo:
Os resíduos quadráticos do módulo são , , , , e .
Para cada par desses resíduos quadráticos, calculamos , o que leva à tabela a seguir (onde está à esquerda e está no topo):
O número mínimo de ocorrências do mesmo valor na tabela acima é (para , , e ). Portanto .
Sua tarefa
Você pode:
- pegue um número inteiro e imprima ou retorne (indexado 0 ou indexado 1)
- pegue um número inteiro e imprima ou retorne os primeiros termos da sequência
- não aceite nenhuma entrada e imprima a sequência para sempre
- Seu código deve ser capaz de processar qualquer um dos 50 primeiros valores da sequência em menos de 1 minuto.
- Com tempo e memória suficientes, seu código deve funcionar teoricamente para qualquer número inteiro positivo suportado pelo seu idioma.
- Isso é código-golfe .
code-golf
sequence
number-theory
Arnauld
fonte
fonte
+n
interior(...)mod n
não tem efeito? Nesse caso, é muito estranho que faça parte da definição.(some_potentially_negative_value + n) mod n
.) Mas acho que é melhor tê-lo em um desafio de programação, já que o sinal do resultado depende da linguagem .a_p = round(p/4)
, o que nos fornece os valores para todos os números sem quadratura. Mas a situação parece complicada com os poderes dos números primos, e os casos de 3 mod 4 e 1 mod 4 precisam ser tratados separadamente.Respostas:
MATL , 14 bytes
Experimente online! Ou verifique os 30 primeiros valores .
Explicação
fonte
Japonês
-g
,2220 bytesPassamos muito tempo a descobrir qual era realmente o desafio e o tempo acabou para continuar a jogar golfe: \
Gera o
n
th th termo na sequência. Começa a lutar quando a entrada>900
.Experimente ou verifique os resultados de 0 a 50
Explicação
fonte
Geléia ,
1310 bytes-1 graças a Dennis (forçando a interpretação diádica com uma liderança
ð
)-2 mais também graças a Dennis (como os pares podem ser duplicados, podemos evitar a
R
e a2
)Um link monádico que aceita um número inteiro positivo que produz um número inteiro não negativo.
Experimente online! Ou veja os 50 primeiros termos .
Quão?
fonte
05AB1E ,
22201513 bytes-2 bytes graças a @Mr. Xcoder .
Experimente online ou verifique os primeiros 99 casos de teste (em cerca de 3 segundos) . (OBSERVAÇÃO: A versão herdada do Python é usada no TIO em vez da nova reescrita do Elixir. É cerca de 10x mais rápida, mas requer um trailing
¬
(head) porque.m
retorna uma lista em vez de um único item, que eu adicionei ao rodapé.)Explicação:
fonte
Ýns%ÙãÆI%D.m¢
. (não está no legado, na nova versão)Dâ
vez deã
..>.> E não sabia o que.m
agia de maneira diferente na reescrita do Elixir. Originalmente, eu tinha a nova versão, mas mudei para o legado depois que notei que¥
não estava funcionando (que você corrigiu com oÆ
). Eu ainda uso o legado no TIO, porque é muito mais rápido para esse desafio.C (gcc) ,
202200190188 188187186 bytesdoisdozequatorze equinze bytes graças ao tetocat .Experimente online!
fonte
Python 2 , 97 bytes
Experimente online!
fonte
K (ngn / k) , 29 bytes
Experimente online!
{
}
função com argumentox
!x
números inteiros de0
ax-1
i:
atribuir ai
x!
modx
?
únicor:
atribuir ar
-\:
subtrair de cada esquerdar-\:r
matriz de todas as diferençasx!
modx
,/
concatenar as linhas da matriz=
grupo, retorna um dicionário de valores exclusivos para listas de índices de ocorrência#:'
comprimento de cada valor no dicionário&/
mínimofonte
Wolfram Language (Mathematica) , 64 bytes
Experimente online!
fonte
Ruby , 88 bytes
Experimente online!
fonte
APL (Dyalog Unicode) ,
2824 bytesExperimente online!
Prefixo da função direta. Usos
⎕IO←0
.Graças ao vacas charlatão por 4 bytes!
Quão:
fonte
2*⍨
→×⍨
,r←¨⊂r
→∘.-⍨
,{≢⍵}
→⊢∘≢