Paul es uno de tus conocidos belgas, y le gustaría que crees un programa que genere al menos una de las siguientes cinco cadenas :
12496=>14288=>15472=>14536=>14264
14264=>12496=>14288=>15472=>14536
14536=>14264=>12496=>14288=>15472
15472=>14536=>14264=>12496=>14288
14288=>15472=>14536=>14264=>12496
Representa a los amigos de los que está más orgulloso y le gustaría comer con ellos. Paul también piensa que el número 6 es perfecto, y ese es el único número que vale la pena usar. Por lo tanto, no puede utilizar ningún otro dígito que no sea "6" en su código (de 0 a 5 y de 7 a 9 están prohibidos). Su programa no puede tomar ninguna entrada. La salida puede contener basura antes y / o después de la cadena, pero debe contener al menos una de las cadenas anteriores.
Por ejemplo, esta es una salida válida:
220frefze
f**14288=>15472=>14536=>14264=>12496**fczfe fz**15472=>14536=>14264=>12496=>14288**zfe
fzehth
"Ligeramente" insinué en la pregunta cómo espero que esto se resuelva, pero ¿cómo sabe? Tal vez hay una mejor manera ... Espero que te diviertas.
Este es el código de golf: gana la puntuación más baja en bytes.
Respuestas:
05AB1E ,
1817 bytesPruébalo en línea!
Explicación
En resumen, calculamos cada número como
f(n+1) = sum(divisors(f(n)) - f(n)
fuente
Pyke, 16 bytes
Pruébalo aquí!
Cada vez que un literal de cadena está al final de un programa, lo intercambia con el token justo antes, guardando 1 byte en casos como este. La
factors
función de Pyke no incluye el número en sí ni 1. Si se permitieran los números, se podría guardar 1 byte reemplazándolow$
con4
Pyke, 21 bytes
Pruébalo aquí!
Crea una lista de los números requeridos y únelos. No es muy interesante aparte del truco con las cuerdas.
fuente
MATLAB, 44 bytes
Pruébalo en línea!
No he encontrado un patrón en los números (y de todos modos sería difícil usar el patrón para cualquier cosa, ya que no puedo usar números), así que seguiré con el enfoque ingenuo.
'=>@EBIJ=@>DDIJ=A@C>IJ=@A?BIJ=@>B@'
es la cadena'12496=>14288=>15472=>14536=>14264'
cuando se agrega 12 a los valores ASCII. Ahora, ingrese esa cadena, reste6+6
y concatene con la cadena vacía''
para convertirla en una matriz de caracteres.fuente
=>
.JavaScript (ES6), 57 bytes / 47 (UTF-8) caracteres
Gracias a user5090812 por 10 B guardar
Explicación
Primero creamos una matriz y la llenamos con los caracteres de la cadena
バ㟐㱰㣈㞸
. Luego recorremos la cadena (a
tiene el valor del elemento actual) y cambiamos el carácter a su código de carácter. Luego unimos todos los valores en la matriz por=>
.Antiguo: 67 bytes
Explicación
Primero creamos una matriz de longitud 5. Luego cambiamos los valores de la matriz en cada índice para el código de carácter del personaje en el mismo índice en la cadena
バ㟐㱰㣈㞸
, que son los números de todos los amigos de Paul en orden. Cuando obtuvimos eso, unimos la matriz y la usamos=>
como separador.Uso
Para usarlo, simplemente ejecute esto:
Salida
fuente
Ruby, 36 bytes (26 caracteres)
Porque, porque no. Aburrido como el infierno.
versión anterior - 53 bytes
Explicación: codificar los números en la base 25 da las 5 cadenas libres de seis, para decodificarlas solo tengo que representar el número 25 usando solo 6: (6-1) (6-1) => ~ -6 ~ -6
fuente
Perl 6 ,
6359 bytesDecodifica los números de la base 25, porque esa es la única base admitida por
.parse-base
(2 a 36) donde ninguno de ellos tiene dígitos no válidos.Gracias a Neil por -3 bytes.
Perl 6 ,
8275 bytesDecodifica el número
15472
en la base 36, y luego genera la secuencia calculando cada número como la suma de los divisores propios del número anterior.Perl 6 , 69 bytes (47 caracteres) - sin competencia
¡No usa ninguno de los dígitos ASCII prohibidos, usa dígitos Unicode del bloque árabe-índico (2 bytes cada uno)! Las
{ }
interpolaciones de cadenas se aseguran de que se analizan como literales de números Perl 6 y luego se encadenan a sus representaciones ASCII.Bien, esto es trampa - es por eso que no lo usé como mi respuesta principal ... :)
fuente
--$/*$/
?--($/=6)*$/)
.Jalea ,
54 bytesImprime las cinco cadenas. Aprovecha el hecho de que se permite la salida "basura" y entierra las cinco cadenas en 10 3003 caracteres de salida.
Cómo funciona
fuente
C,
948477 BytesStoopid simple. Un agradecimiento especial @Neil
f () {printf ("% d =>% d =>% d =>% d =>% d", '~' 'r' - 'd', '~' 'd' - 'h', ' ~ ' ' r '-' L ',' ~ ' ' z '+' d ',' ~ '*' t '-' P ');}fuente
char*m
interiorfor()
para guardar un byte, y también hace que la función sea reutilizable (condición necesaria de las funciones). Además, genera un nulo final;*++m
lo arreglaría Además, puede guardar algunos bytes restando 60 en lugar de 66:g(){for(char*m="!mnpuryzmpnttyzmqpsnyzmpqoryzmpnrp";*++m;)putchar(*m-66+6);}
.initial declaration used outside C99 mode
pero estoy feliz de simplificar el putchar. ¡Gracias!PHP,
736360 bytesCorre con
-nr
.un poco menos vago: tomó cadena como lista de
=>1(ascii)(ascii)
decir:
124
,96
,=>1
,42
,88
,=>1
,54
,72
,=>1
,45
,36
,=>1
,42
,64
,imprimir
=>1
por índice de cadena, agregar código ASCIIDescompostura
fuente
C ++, 92 bytes
fuente
PHP, 53 bytes
Volcado hexadecimal:
Salida:
Explicación:
Cada una de las secciones enteras de cinco dígitos se codifica como un pequeño endian corto sin signo, luego se concatenan juntos y el resultado se comprime. Esto produce un byte steam que no tiene caracteres de dígitos ofensivos, que luego se codifica en una cadena. Para extraer, descomprima el flujo, desempaquete los cortos de dos bytes, interprete cada uno como una cadena y únase a ellos
>=
.fuente
Java 8, 134 bytes
Golfizado:
Ungolfed, programa completo:
fuente
Lote, 191 bytes
Calculo que tomaría un mínimo de 32 bytes para calcular cada número usando solo
6
s más otros 32 para imprimirlos todos, que ya son 192 bytes, por lo que estoy ganando al calcular la cadena amigable. Además, creo que cinco%
s seguidos es un récord para mí. Además, el truco ordenado de Batch:%n%
se sustituye antes defor
evaluar el bucle, por lo que el bucle calcula todos los factoresn
y los restan
, lo que resulta en la negación del resultado deseado.fuente
Jalea , 12 bytes
Imprime la cuarta cadena y nada más.
Pruébalo en línea!
Cómo funciona
fuente
Python 2,
7872 bytesEditar - Gracias a Stewie Griffin por guardar 6 bytes!
Además, otra solución sería generar todas las permutaciones posibles. OP dice que la basura está bien.
Hay demasiada redundancia en la conversión de
int
olist
haciastr
. Supongo que esto sería más fácil en algunos idiomas esotéricos, pero no conozco ninguno de ellos.fuente