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

+ninterior(...)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
nté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
Ry 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.mdevuelve 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.mactuaba 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!xenteros de0ax-1i:asignar aix!modificaciónx?únicor:asignar ar-\:restar de cada izquierdar-\:rmatriz 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→∘.-⍨,{≢⍵}→⊢∘≢