En este desafío, debes resolver 4 tareas diferentes usando el mismo conjunto de caracteres. Puede reorganizar los caracteres, pero no puede agregar o eliminar caracteres.
El ganador será el envío que resuelve todas las tareas utilizando el menor número de caracteres. Todas las tareas deben resolverse en el mismo idioma.
Tenga en cuenta que es el número más pequeño de caracteres, no el número más pequeño de caracteres únicos .
Tarea 1:
Salida de los primeros N
números de cada tercer número compuesto . El siguiente bloque de código muestra los primeros 19 números compuestos en la primera fila y cada tercer número compuesto en la fila a continuación.
4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30
4, 9, 14, 18, 22, 26, 30
Si N=5
entonces la salida debería ser 4, 9, 14, 18, 22
. Debes apoyar 1<=N<=50
.
Los números compuestos son números positivos que no son números primos o 1.
El resultado para N=50
es:
4, 9, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 57, 62, 65, 69, 74, 77, 81, 85, 88, 92, 95, 99, 104, 108, 112, 116, 119, 122, 125, 129, 133, 136, 141, 144, 147, 152, 155, 159, 162, 166, 170, 174, 177, 182, 185, 188, 192
Tarea 2:
Salida de una N-by-N
tabla de multiplicar. Debes apoyar1<=N<=20
Ejemplo:
N = 4
1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
El formato de salida es opcional, lo siguiente es salida aceptable [[1,2,3,4],[2,4,6,8],[3,6,9,12],[4,8,12,16]]
.
Tarea 3:
Determine si un número es un número de Fibonacci . Debe admitir positivo N
hasta el límite entero predeterminado de su idioma. Si hay enteros de 32 bits y enteros de 64 bits, puede elegir usar el que requiera el código más corto. Por ejemplo, use en int
lugar de long int
si tiene la opción. No puede elegir enteros más pequeños que 32 bits a menos que sea predeterminado (no puede usar enteros de 8 bits si 32 bits es predeterminado).
true/false
, false/true
, 1/0
, 1/-1
, a/b
Son todos de salida aceptable siempre y cuando sea consistente.
Tarea 4:
Tomar N
como entrada y salida el resultado de 1^1+2^2+3^3+...N^N
. Debes apoyar 1<=N<=10
.
Los 10 resultados diferentes son:
1, 5, 32, 288, 3413, 50069, 873612, 17650828, 405071317, 10405071317
Este es el código de golf , por lo que gana la presentación más corta en cada idioma.
Este fragmento de pila ayudará a verificar su solución. Mide el conjunto mínimo de caracteres necesarios para incluir las cuatro soluciones y muestra los caracteres sobrantes.
fuente
Respuestas:
Python,
8887 bytesNo se esforzó demasiado para compartir personajes o los campos de golf en sí, seguramente será mejor.
fuente
range(11*n)
Siempre contendrá suficientes compuestos?5*n
es suficiente.Jalea ,
191817 caracteresTarea 1
Pruébalo en línea!
Tarea 2
Pruébalo en línea!
Tarea 3
Pruébalo en línea!
Tarea 4
Pruébalo en línea!
Cómo funciona
Cada línea en un programa Jelly define un enlace (función) separado . El último es el enlace principal. y se llama automáticamente cuando se ejecuta el programa. A menos que ese enlace principal haga referencia a los demás de alguna manera, no tienen ningún efecto. Tenga en cuenta que incluso los enlaces no invocados pueden no contener errores del analizador.
Tarea 1
Tarea 2
Este es trivial:
×
es el átomo de multiplicación, y seþ
aplica la tabla rápida×
a cada combinación de elementos en el argumento izquierdo y derecho. Si los argumentos son enteros (que están aquí), también los convierte en rango primero.Tarea 3
Tarea 4
fuente
ÆḞ
que ya está demostrando ser útil!Mathematica, 60 caracteres.
Tarea 1: Compuestos
Tarea 2: tabla de multiplicación
Tarea 3: Fibonacci
Tarea 4: Suma de poderes
Cada envío es un conjunto de expresiones que se ignoran, seguidas de una función sin nombre que implementa la tarea dada.
Escribí un script simple de CJam que "óptimamente" combina soluciones en bruto al anteponer un comentario. Luego terminé guardando tres bytes además de eso, deshaciéndome manualmente de cada comentario (lo que requería un reordenamiento para obtener una sintaxis válida en cada caso). El guión hizo que fuera mucho más fácil probar variaciones simples de las soluciones para ver si bajaban el puntaje general. Siéntase libre de usar el guión usted mismo.
fuente
ab
yba
como las secuencias de comandos, me dará(**)ab
y(**)ba
, en lugar deab
yba
.(**)
podría usarse para cubrir algunos caracteres si se usaran en cualquiera de los otros programas.MATL ,
292826 caracteresTarea 1 (cada tercer número compuesto)
Pruébalo en línea!
Tarea 2 (tabla de multiplicar)
Pruébalo en línea!
Tarea 3 (detector de Fibonacci)
Esto muestra
1
/0
para Fibonacci / no Fibonacci respectivamente.Pruébalo en línea!
Tarea 4 (suma de poderes)
Pruébalo en línea!
Comprobar
Este programa ingresa las cuatro cadenas y las muestra ordenadas, para verificar visualmente que usan los mismos caracteres.
Explicaciones
%
es el símbolo de comentario Todo a su derecha es ignorado.Tarea 1 (cada tercer número compuesto)
Tarea 2 (tabla de multiplicar)
Tarea 3 (detector de Fibonacci)
Tarea 4 (suma de poderes)
fuente
Hey MATL would be perfect for this!
que me superaste. +1Perl 6 , 61 bytes
El segundo regresa
((1,2,3,4),(2,4,6,8),(3,6,9,12),(4,8,12,16))
cuando se da4
Perl 6 realmente no tiene un número entero máximo, pero el tercero funciona instantáneamente con una entrada de
15156039800290547036315704478931467953361427680642
. Los únicos factores limitantes serían la memoria y el tiempo.De lo contrario, todos se ejecutarán "instantáneamente" para entradas mucho más allá de lo necesario.
Pruébalo en línea
fuente
JavaScript (ES6),
101100959391 bytesEditar: guardado 1 byte al no admitir
0
como un número de Fibonacci. Se guardaron 5 bytes más otros 2 bytes (1 gracias a @Arnauld) al cambiar el nombre de las variables. Se guardaron 2 bytes al cambiar entre+1
,++
y+=1
.fuente
c
variable conA
debería guardar un byte.d
cony
, perod
no está definido en la versión actual, por lo que es probable que desee arreglar eso primero)a
am
.MATL , 30 caracteres
El conjunto de caracteres con el que fui es:
No pude superar la otra respuesta de MATL, pero me divertí con esta solución.
Tarea 1:
Terceros números compuestos.
Pruébalo en línea!
Tarea 2:
Tabla de multiplicación. Definitivamente la tarea más fácil, debido a la forma en que funciona MATL
Pruébalo en línea!
Tarea 3:
Probador de Fibonacci. Imprime un número entero positivo (1 o 2) para entradas verdaderas y 0 para entradas falsas.
Pruébalo en línea!
Tarea 4:
Suma de poderes
Pruébalo en línea!
Publicaré una explicación más detallada más adelante, pero por ahora, debe tener en cuenta que ese
%
es el carácter del comentario, por lo que los programas son realmente:fuente
PowerShell ,
9594 bytes( TimmyD mi tocino una vez más)
Tarea 1:
Pruébalo en línea!
Tarea 2:
Pruébalo en línea!
Tarea 3:
Pruébalo en línea!
Tarea 4:
Pruébalo en línea!
fuente
"$args"
lugar de$args[0]
es brillante. Voy a usar eso de aquí en adelante.;
de la Tarea 4 manipulando el cálculo con("$args"..1|%{$s+="$_*"*$_+1|iex})-(-$s)
para guardar otro byte general.Haskell ,
7776 caracteresPruébalo en línea!
--
comienza un comentario de línea, por lo que los cuatro programas tienen la forma<program>--<unused chars>
.Tarea 1:
El programa más largo.
[x|x<-[1..],2/=sum[1|0<-mod x<$>[1..x]]]
produce una lista infinita de números compuestos más un comienzo1
que corrige la indexación 0. Uso:Tarea 2:
Uso:
Tarea 3:
Retornos
[0]
por verdad y[]
por falsedad. Uso:Tarea 4:
Uso:
fuente
05AB1E , 21 bytes
Tarea 1
Pruébalo en línea!
Tarea 2
Pruébalo en línea!
Tarea 3
Pruébalo en línea!
Tarea 4
Pruébalo en línea!
Explicaciones
Para todas las tareas,
q
finaliza el programa para que el código que sigue nunca se ejecute.Tarea 1
Este es el byte-hog más grande. Una pequeña mejora aquí podría recorrer un largo camino.
Tarea 2
Tarea 3
Tarea 4
fuente
Ruby,
83 82 8078 caracteresNota: Detector de números de Fibonacci utilizando el método de cuadrado perfecto descrito en Wikipedia: https://en.wikipedia.org/wiki/Fibonacci_number#Recognizing_Fibonacci_numbers
fuente
'';
vs#