Definiciones
Residuos cuadráticos
Un número entero se llama módulo de residuo cuadrático si existe un número entero tal que:
El conjunto de residuos cuadráticos módulo puede calcularse simplemente observando los resultados de para 0 \ le x \ le \ lfloor n / 2 \ rfloor .
La secuencia del desafío
Definimos como el número mínimo de ocurrencias del mismo valor para todos los pares de residuos cuadráticos módulo .
Los primeros 30 términos son:
Este es A316975 (presentado por mí mismo).
Ejemplo:
Los residuos cuadráticos módulo son , , , , y .
Para cada par de estos residuos cuadráticos, calculamos , que lleva a la siguiente tabla (donde está a la izquierda y está en la parte superior):
El número mínimo de ocurrencias del mismo valor en la tabla anterior es (para , , y ). Por lo tanto .
Tu tarea
Usted puede:
- tome un entero e imprima o devuelva (ya sea 0 indexado o 1 indexado)
- tome un entero e imprima o devuelva los primeros términos de la secuencia
- no ingrese nada e imprima la secuencia para siempre
- Su código debe poder procesar cualquiera de los 50 primeros valores de la secuencia en menos de 1 minuto.
- Dado el tiempo y la memoria suficientes, su código debe funcionar teóricamente para cualquier número entero positivo admitido por su idioma.
- Este es el código de golf .
code-golf
sequence
number-theory
Arnauld
fuente
fuente
+n
interior(...)mod n
? Si es así, es muy extraño que sea parte de la definición.(some_potentially_negative_value + n) mod n
). Sin embargo, creo que es mejor tenerlo en un desafío de programación, ya que el signo del resultado depende del lenguaje .a_p = round(p/4)
, lo que nos da los valores para todos los números libres de cuadrados. Pero la situación parece complicada en los poderes de los primos, y los casos de 3 mod 4 y 1 mod 4 deben manejarse por separado.Respuestas:
MATL , 14 bytes
Pruébalo en línea! O verifique los primeros 30 valores .
Explicación
fuente
Japt
-g
,2220 bytesPasé demasiado tiempo averiguando de qué se trataba el desafío, se acabó el tiempo para seguir jugando al golf: \
Emite el
n
término th en la secuencia. Comienza a luchar cuando la entrada>900
.Pruébalo o comprueba los resultados para 0-50
Explicación
fuente
Jalea ,
1310 bytes-1 gracias a Dennis (forzando la interpretación diádica con un líder
ð
)-2 más también gracias a Dennis (dado que los pares pueden ser duplicados podemos evitar una
R
y a2
)Un enlace monádico que acepta un número entero positivo que produce un número entero no negativo.
Pruébalo en línea! O vea los primeros 50 términos .
¿Cómo?
fuente
05AB1E ,
22201513 bytes-2 bytes gracias a @Mr. Xcoder .
Pruébelo en línea o verifique los primeros 99 casos de prueba (en aproximadamente 3 segundos) . (NOTA: La versión heredada de Python se usa en TIO en lugar de la nueva reescritura de Elixir. Es aproximadamente 10 veces más rápida, pero requiere un final
¬
(encabezado) porque.m
devuelve una lista en lugar de un solo elemento, que he agregado al pie de página).Explicación:
fuente
Ýns%ÙãÆI%D.m¢
. (no en legado, en la nueva versión)Dâ
lugar deã
..>.> Y no sabía que.m
actuaba de manera diferente en la reescritura de Elixir. Originalmente tenía la nueva versión, pero cambié al legado después de que noté que¥
no funcionaba (lo que solucionó con elÆ
). Sin embargo, todavía uso el legado en TIO, porque es mucho más rápido para este desafío.C (gcc) ,
202200190188187186 bytesdosdocecatorcequince bytes gracias a ceilingcat .Pruébalo en línea!
fuente
Python 2 , 97 bytes
Pruébalo en línea!
fuente
K (ngn / k) , 29 bytes
Pruébalo en línea!
{
}
funcionar con argumentox
!x
enteros de0
ax-1
i:
asignar ai
x!
modificaciónx
?
únicor:
asignar ar
-\:
restar de cada izquierdar-\:r
matriz de todas las diferenciasx!
modificaciónx
,/
concatenar las filas de la matriz=
grupo, devuelve un diccionario de valores únicos a listas de índices de ocurrencia#:'
longitud de cada valor en el diccionario&/
mínimofuente
Wolfram Language (Mathematica) , 64 bytes
Pruébalo en línea!
fuente
Ruby , 88 bytes
Pruébalo en línea!
fuente
APL (Dyalog Unicode) ,
2824 bytesPruébalo en línea!
Función directa de prefijo. Usos
⎕IO←0
.¡Gracias a Cows quack por 4 bytes!
Cómo:
fuente
2*⍨
→×⍨
,r←¨⊂r
→∘.-⍨
,{≢⍵}
→⊢∘≢