Resumen ejecutivo: pruebe si una secuencia de entrada de enteros es "admisible", lo que significa que no cubre todas las clases de residuos para ningún módulo.
¿Qué es una secuencia "admisible"?
Dado un número entero m ≥ 2, las clases de residuos módulo m son solo las posibles progresiones aritméticas de diferencia común m. Por ejemplo, cuando m = 4, las 4 clases de residuos módulo 4 son
..., -8, -4, 0, 4, 8, 12, ...
..., -7, -3, 1, 5, 9, 13, ...
..., -6, -2, 2, 6, 10, 14, ...
..., -5, -1, 3, 7, 11, 15, ...
La clase de residuo k consta de todos los enteros cuyo resto al dividir por m es igual a k. (siempre y cuando uno defina "resto" correctamente para enteros negativos)
Una secuencia de enteros a1, a2, ..., ak es admisible módulo m si no logra intersecar al menos una de las clases de residuos. Por ejemplo, {0, 1, 2, 3} y {-4, 5, 14, 23} no son admisibles módulo 4, pero {0, 1, 2, 4} y {0, 1, 5, 9} y {0, 1, 2, -3} son admisibles módulo 4. Además, {0, 1, 2, 3, 4} no es admisible módulo 4, mientras que {0, 1, 2} es admisible módulo 4.
Finalmente, una secuencia de enteros es simplemente admisible si es admisible módulo m para cada entero m ≥ 2.
El reto
Escriba un programa o función que tome una secuencia de enteros como entrada, y devuelva un valor de Verdad (consistente) si la secuencia es admisible y un valor de Falsy (consistente) si la secuencia no es admisible.
La secuencia de entrada de enteros puede estar en cualquier formato razonable. Puede suponer que la secuencia de entrada tiene al menos dos enteros. (También puede suponer que los enteros de entrada son distintos si lo desea, aunque probablemente no ayude). Debe poder manejar enteros positivos y negativos (y 0).
Puntuación de código de golf habitual : la respuesta más corta, en bytes, gana.
Entrada de muestra
Las siguientes secuencias de entrada deberían dar un valor de Verdad:
0 2
-1 1
-100 -200
0 2 6
0 2 6 8
0 2 6 8 12
0 4 6 10 12
-60 0 60 120 180
0 2 6 8 12 26
11 13 17 19 23 29 31
-11 -13 -17 -19 -23 -29 -31
Las siguientes secuencias de entrada deberían dar un valor de Falsy:
0 1
-1 4
-100 -201
0 2 4
0 2 6 10
0 2 6 8 14
7 11 13 17 19 23 29
-60 0 60 120 180 240 300
Consejos
- Tenga en cuenta que cualquier secuencia de 3 o menos enteros es automáticamente admisible módulo 4. Más generalmente, una secuencia de longitud k es automáticamente admisible módulo m cuando m> k. De ello se deduce que las pruebas de admisibilidad realmente solo requieren verificar un número finito de m.
- Tenga en cuenta también que 2 divide 4, y que cualquier secuencia que sea admisible módulo 2 (es decir, todo par o todo impar) es automáticamente admisible módulo 4. Más generalmente, si m divide ny una secuencia es admisible módulo m, entonces es módulo admisible automáticamente n. Para verificar la admisibilidad, por lo tanto, es suficiente considerar solo prime m si lo desea.
- Si a1, a2, ..., ak es una secuencia admisible, entonces a1 + c, a2 + c, ..., ak + c también es admisible para cualquier número entero c (positivo o negativo).
Relevancia matemática (lectura opcional)
Deje a1, a2, ..., ak ser una secuencia de enteros. Suponga que hay infinitos enteros n tales que n + a1, n + a2, ..., n + ak son primos. Entonces es fácil demostrar que a1, a2, ..., ak deben ser admisibles. De hecho, suponga que a1, a2, ..., ak no es admisible, y sea m un número tal que a1, a2, ..., ak no sea admisible módulo m. Entonces, no importa qué n elijamos, uno de los números n + a1, n + a2, ..., n + ak debe ser un múltiplo de m, por lo tanto, no puede ser primo.
La conjetura principal de k-tuplas es la inversa de esta afirmación, que sigue siendo un problema abierto en la teoría de números: afirma que si a1, a2, ..., ak es una secuencia admisible (o k-tupla ), entonces existe deben ser infinitos números enteros n tales que n + a1, n + a2, ..., n + ak son primos. Por ejemplo, la secuencia admisible 0, 2 arroja la afirmación de que debería haber infinitos números enteros n de modo que tanto n como n + 2 sean primos, esta es la conjetura de los primos gemelos (aún sin probar).
fuente
[_60:0:60:120:180]
me está dando la verdad; de hecho, no se cruza al menos una clase en cadam
desde2
hasta5
inclusivo; Además, se cruza con una sola clase en cadam
desde2
hasta5
inclusiva.-60 0 60 120 180 240 300
intersecta cada clase de residuo módulo 7, por lo que no es admisible.Respuestas:
Jalea, 10 bytes
Pruébalo en línea! o ejecutar todos los casos de prueba .
fuente
Brachylog ,
252419 bytes5 bytes gracias a Karl Napf.
Pruébalo en línea!
¡Verifique todos los casos de prueba!
fuente
Pitón,
6160 bytesTodos los casos de prueba en ideona
Editar: reemplazado lógico y con bit a bit y para guardar un byte
fuente
JavaScript (ES6), 59 bytes
Utiliza el truco Conjunto de residuos de @ KarlNapf.
fuente
Python,
6764 bytesComo lambda sin nombre:
set()
con{}
all(...)
range
debe subir alen(N)+1
Código antiguo como función (96 bytes):
fuente
Mathematica, 51 bytes
fuente
MATL , 11 bytes
La verdad es una matriz (vector de columna) que contiene todas. Falsy es una matriz que contiene al menos un cero. Puede verificar estas definiciones usando este enlace .
Pruébalo en línea! O verifique todos los casos de prueba: verdadero , falso (código ligeramente modificado, cada caso produce un vector horizontal para mayor claridad).
Explicación
fuente