Debe escribir 3 programas y / o funciones en un idioma.
Todos estos programas deberían resolver la misma tarea, pero todos deberían dar resultados diferentes (pero válidos). (Es decir, para cada par de programas, debe haber alguna entrada que genere conjuntos diferentes (pero válidos) de números de salida).
La tarea
- Se le da un número entero
n
mayor que 1 - Debe devolver o generar enteros positivos
n
distintos , y ninguno de ellos debe ser divisible porn
. - El orden de los números no importa y una permutación de números no cuenta como salidas diferentes.
Un triplete válido de programas con algunos input => output
pares:
program A:
2 => 5 9
4 => 5 6 9 10
5 => 2 4 8 7 1
program B:
2 => 1 11
4 => 6 9 1 2
5 => 4 44 444 4444 44444
program C (differs only in one number from program B):
2 => 1 13
4 => 6 9 1 2
5 => 4 44 444 4444 44444
Puntuación
- Su puntaje es la suma de las duraciones de los 3 programas o funciones.
- Puntaje más bajo es mejor.
- Si sus programas / funciones comparten código, el código compartido debe contarse en la longitud de cada programa que usa el código.
code-golf
number
arithmetic
number-theory
randomra
fuente
fuente
Respuestas:
Pyth,
1716 bytes5 bytes:
Salidas:
6 bytes:
Salidas:
5 bytes:
Salidas:
Versión alternativa, en orden creciente:
-ShQQ
fuente
J, 16 bytes
Función 1, 5 bytes
Función 2, 6 bytes
Función 3, 5 bytes
Cómo funciona
Función 1
Como P es primo y P> y , y no puede dividir P e .
Función 2
Si y dividiera P e + y , también dividiría P e + y - y = P e .
Función 3
Si y dividido (y + 1) e algún factor primo Q de y tendría que dividir (y + 1) e .
Pero entonces, Q dividiría tanto y como y + 1 y, por lo tanto, y + 1 - y = 1 .
fuente
Dyalog APL,
1617 bytesfuente
Vitsy , 54 bytes
Programas:
Salidas:
Cómo funciona (usando el primer programa como explicación):
Pruébalo en línea!
fuente
Perl, 79
Se agregó un carácter a cada programa porque esto requiere la
-n
bandera.Bastante sencillo.
fuente
Mathematica, 12 + 12 + 12 = 36 bytes
Pruebas:
fuente
CJam, 8 + 8 + 8 = 24 bytes
Estas son tres funciones sin nombre que esperan
n
estar en la pila y dejan una lista de enteros en su lugar. No estoy seguro de que esto sea óptimo, pero tendré que buscar una solución más corta más adelante.Banco de pruebas.
Resultados:
El primero también funciona como
o
fuente
Python 2, 79 bytes
Tres función anónima que se inician en
1
y contar por cada uno den, 2*n, 3*n
den
los términos.fuente
En serio, 20 bytes
Sí, esto no es óptimo ...
fuente
Par 16 bytes
La codificación personalizada, descrita aquí , usa solo un byte por carácter.
Salidas
fuente
Haskell, 54 bytes
Estas tres funciones son bastante sencillas, así que ...
fuente
Octava, 11 + 13 + 13 = 37 bytes
fuente
Python 2, 125 bytes
Cada línea aquí es un programa completo. La solución más obvia en mi mente.
EDIT @ Sherlock9 guardó dos bytes.
fuente
Haskell, 50
Ejemplos:
fuente
Golfscript, 50
5157bytesUna versión de Golfscript de lo que solía ser el código Python de quintopia . Cada función despega
n
de la pila.fuente
TI-Basic (TI-84 Plus CE),
5540 bytes en totalSimple, similar a muchas otras respuestas aquí, cada una muestra una lista de los números (X + A) N + 1 para X en el rango (N) y siendo A el programa (1, 2 o 3).
Solución anterior (55 bytes):
Simple, similar a muchas otras respuestas aquí, cada una muestra los números (X + A) N + 1 para X en el rango (N) y siendo A el programa (1, 2 o 3).
fuente