Recientemente ha creado una cuenta en un sitio de apuestas poco fiable, donde por una tarifa de 25 dólares, le reembolsarán una cantidad aleatoria entre 0 y 50 dólares. Después de obtener alrededor de 5 dólares dos veces, decide probar que el sitio es una estafa. Después de acceder a su cortafuegos externo con la contraseña predeterminada, puede acceder al servidor de su base de datos y encontrar dónde se encuentran los valores para las cantidades mínima y máxima. Decide conectar 25 '9 como valor máximo, pero recibe un mensaje de error que dice que el valor máximo debe ser del tipo' uint64 '. Sin embargo, es ahora cuando observa que algunas teclas numéricas no parecen escribirse correctamente en la consola remota. El desafío aparece ante usted casi como si estuviera escrito en un sitio de preguntas y respuestas.
usando solo los programas convenientemente instalados para probar y ejecutar su idioma en particular, genera el tamaño máximo de un valor entero de 64 bits sin signo, sin embargo, casi todo, excepto las herramientas de programación, se rompen en esta máquina, dejándolo sin el uso de los números 1, 2,4,6,8, ya sea en código fuente o en literales, también se da cuenta de que parece llevar una cantidad de tiempo exponencialmente más largo ejecutar el programa para cada pieza adicional de código, por lo que será mejor que se mantenga breve si quiero hacerse rico antes del sorteo!
El reto
Escriba un programa que genere 18446744073709551615, el valor máximo de un entero de 64 bits sin signo, ya sea como un número o como una sola cadena.
Su código fuente no puede contener ninguno de los caracteres '1', '2', '4', '6' u '8'
Si su idioma no tiene un entero de 64 bits sin signo o equivalente, la salida puede estar en formato de cadena o de otro modo, pero debe ser el número anterior.
Este es el código de golf, ¡el código más corto en cada idioma gana!
Respuestas:
Cera de abejas , 3 bytes
Explicación:
Pruébalo en línea!
Este lenguaje es perfecto para este desafío.
Aquí hay un extracto de la página de Esolang en cera de abejas :
Esto es básicamente largos sin firmar.
EDITAR: Todavía espero que Dennis me supere con una solución de 2 bytes.
fuente
C, 26 bytes
Imprime un
unsigned long
valor.Requiere que el tamaño
long
sea de 64 bits.fuente
print~0
.~0l
Deberia trabajar.sizeof(long) * CHAR_BIT == 64
. Una suposición razonable para el golf, pero vale la pena señalar.CJam (4 bytes)
Demostración en línea
Esto calcula 16 16 - 1 usando builtin
G
para 16 y el operador de disminución(
.fuente
SBCL común de 64 bits, 18 bytes
most-positive-word
La palabra más positiva en el compilador de 64 bits es 64uint. Es algo.
fuente
Python3 REPL, 12 bytes
En REPL:
~-(~-3<<9*7)
Fuera de REPL:
print~-(~-3<<9*7)
<--> Python2!Aquí hay otro a los 17 bytes:
~-(~-3<<ord("?"))
.Explicación
Nada súper lujoso. Aquí está desglosado:
La expresión resultante es aproximadamente (pero no del todo)
~-(2<<63)
->(2**64)-1
. Yo uso el operador renacuajo dos veces aquí. Un consejo de golf al respecto está aquí .También hay
sys.maxint
en Python2 que se puede usar, pero no lo miraré.repl.it <- enlace de prueba.
fuente
~-(~
parte los ojos del primer gato? No puedo ver bien al segundo gato ...antes de Cristo,
1513 bytesGuardado 2 bytes gracias a manatwork.
Nada lujoso, solo (16 ^ 16) -1.
fuente
(a=9+7)^a-3/3
dc , 7 bytes
Creo que está permitido que los idiomas basados en la pila dejen la respuesta en la celda superior de la pila, similar a un valor de retorno para las funciones. Si se necesita una impresión explícita, agregue
p
al final del código.Pruébalo en línea!
Calcula (2 64 - 1) usando varios trucos:
2
se da como el número de dígitos (Z
) encontrado en el entero 10 (A
)64
se da como5E
. Por defecto, dc usa 10 como la raíz de entrada. Aun así, puede aceptar números en notación hexadecimal, pero se convertirán de manera diferente de lo que cabría esperar. Ejemplo: (5E) predeterminado = (5E) (entrada radix = 10) = (5 * 10 1 ) + (14 (E) * 10 0 ) = 50 + 14 = 641
se da como la profundidad de la pila (z
), ya que solo (2 64 ) estaba presente entoncesHistoria alternativa:
Solución en dc: informática (16 16 - 1), ¡todavía 7 bytes!
Pruébalo en línea!
fuente
Jalea , 4 bytes
Pruébalo en línea!
Explicación
fuente
05AB1E , 4 bytes
Explicación:
¡Finalmente! ¡Una oportunidad de usar
05AB1E
los builtins para poderes de dos!Pruébalo en línea!
Otra respuesta de 4 bytes:
Explicación:
Pruébalo en línea!
(si alguien se pregunta, esta pregunta es más antigua que todas las otras respuestas de 4 bytes)
fuente
64o<
pero aún no la he encontrado. Algo así como'@Ço<
con un empuje creativo de 64 ... Si logra empujar 64 con 1 byte, puede obtener 3 es el punto que estoy tratando de hacer.MATLAB / Octave, 5 bytes
@Sanchises publicó una excelente respuesta de MATLAB, sin embargo, este es un enfoque considerablemente diferente, por lo que lo publicaré de todos modos:
En MATLAB,
tic
devuelve el número de milisegundos pasados desde que se abrió el programa. Crucialmente el valor que devuelve es unuint64
tipo. Estouint64
evita tener que emitir un número desde el tipo predeterminado de MATLABdouble
.Cualquier número dividido por 0 en MATLAB se considera como infinito, lo que para los tipos de punto no flotante, MATLAB representa esto como el valor entero máximo para ese tipo.
Esto también funciona con Octave, aunque dependiendo del intérprete que use, también puede emitir una advertencia de "división por cero". Puede probar el código en línea aquí, ya que digo que recibe una advertencia de / 0 que no aparece en MATLAB.
fuente
tic==0
al inicio 😉)a .
18 años, 16 bytesfuente
-3/3
para obtener-1
?PHP, 16 bytes
Esto es muy parecido a la respuesta de Ven: https://codegolf.stackexchange.com/a/110751/38505
https://repl.it/Frcy/0
fuente
bash
demasiado:printf %u $[~0]
.~0
es-1
, que está1111111111111111111111111111111111111111111111111111111111111111
en binario, en 64 bits, en comparación con11111111111111111111111111111111
32 bits, y los números dependen de la plataforma.MATLAB / Octave, 22 bytes
Pruébalo en línea!
eye
se usa para crear una matriz unitaria (matriz con1
diagonal, cero en caso contrario). Sin argumentos, esto crea una1x1
matriz unitaria, o en otras palabras, solo a1
. Toma un argumento opcional, que es el tipo de datos ('clase' en la terminología de MATLAB) de la matriz creada. Por lo tanto, pedimos un1
de claseuint64
, y lo dividimos por cero, lo que da como resultadoInf
MATLAB, que se recorta enintmax('uint64')
.El vector
['~rw}?='-9 '']
evalúa a'uint64'
. La concatenación de un carácter vacío a un vector es 1 byte más corto que el usochar('~rw}?='-9)
.Razonando hacia esta respuesta: el incorporado
intmax
evalúa tristemente al máximo de un entero con signo de 32 bits. La siguiente opción obvia esuint64()
, que contiene los caracteres prohibidos. La alternativa es usar una función que tome una cadena como tipo de datos. Los candidatos obvios sonintmax
ycast
, pero las alternativas incluyenzeros
,ones
yeye
.Nota: MATLAB se instala de manera predeterminada en prácticamente todos los sitios de juego poco fiables.
fuente
JavaScript,
39383332 bytesEditar: Guardado 5 bytes gracias a @Arnauld.
fuente
Java 8, 30 bytes
Prueba en línea
fuente
1846
.BF, 108 bytes
Si cada comando se considera como 3 bits, esto es potencialmente 41 bytes.
fuente
+-<>[].,
Retina ,
2827 bytesGuardado 1 byte gracias a Kritixi Lithos
Pruébalo en línea!
Explicación
Reemplaza la entrada inexistente / vacía con esta cadena. Esta cadena particular fue generada por el "inverso" de este programa. Codifica a
a
travésj
como a0
través9
, respectivamente.Esta es una
T
etapa de ransliteración. Ell
yd
son conjuntos de caracteres utilizados para la transliteración.l
representa el alfabeto en minúsculas,d
es todos los dígitos. Entonces, se asigna deabcdefghij
nuevo a0123456789
.fuente
d
lugar deEO
)C ++, 46 bytes.
Primera vez que hago un código de golf, pero estoy bastante feliz conmigo mismo. Estaremos encantados de recibir cualquier crítica / sugerencia :)
fuente
Brain-Flak ,
64, 62, 58, 54 bytesPruébalo en línea!
[¡Pruébelo en línea!]
¡Cuatro bytes guardados gracias a @Riley!
Explicación:
Para el registro, intenté presionar 32 y cuadruplicar, pero es el mismo conteo de bytes.
fuente
()
s de 64 para empujar el 1:((((((())()()()){}){}){}){})
((((((())()()()){}){}){}){}[()]){({}<(({}){}())>[()])}{}
((((((<>)()()()()){}){}){}){}){({}<(({}){}())>[()])}{}
N*2+1
lugar de(N+1)*2-1
?C # 6, 31 bytes
Más o menos lo mismo que Java.
C # 5, 56 bytes
fuente
Func<ulong>
()=>~0UL;
Func<int, ulong>
para guardar un byte:_=>~0UL;
y creo que aún sería válido.Adelante (gforth),
1197 bytesPruébalo en línea
true
es el mismo que-1
.U.
imprime un número como un entero sin signo.¿Esto funciona en TIO, posiblemente porque tiene una arquitectura de 64 bits? No estoy seguro. Si ejecuto
-1 U.
en repl.it, por ejemplo, obtengo 2 ** 32-1. Si repl.it admitiera enteros de doble longitud, en suUD.
lugar se utilizarían los resultados .fuente
-3 3 / U.
true U.
(que también tiene un ritmo agradable)true
, porque estoy tan acostumbrado a usar0
y1
. Gracias.Python3 REPL, 11 bytes
Cómo funciona
fuente
PowerShell ,
2914 bytesPruébalo en línea!
Gracias a @ n0rd por esencialmente jugar golf a la mitad.
Esto aprovecha el
PB
operador unario incorporado que básicamente funciona como "multiplicar el número anterior por1125899906842624
" (es decir, cuántos bytes hay en un pebibyte). Eso está junto con el hex0xC000
, o49152
, entonces49152 pebibytes
. Dividimos eso entre3
rendimientos18446744073709551616
y restamos3/3
para obtener el valor final.fuente
"0x$(7-3)000PB-9/9"|iex
0xC000PB/3-3/3
PB
así. ¡Gracias!JavaScript (ES6), 50 bytes
fuente
'䠎ᴐIF╏ɧ'
y eliminar los-27
Asamblea x64, 7 bytes
hexagonal (ensamblado): 4831C048FFC8C3
desmontado, comentado:
XOR RAX,RAX ;Zero the value of 64 bit register RAX DEC RAX ;Decrement the value of RAX RET ;Return this value
RAX es un registro de 64 bits, y se usa con mayor frecuencia para devolver argumentos enteros (por ejemplo, C). Al disminuir 1, su valor pasa de 0 a ... 2 ^ 64-1, que es exactamente lo que se necesita.
Sin embargo, el binario ensamblado contiene unos y cuatro y ocho, el ensamblado no, pero el archivo ensamblado se cuenta en ensamblaje, entonces ¿cuenta? Ay, mi cabeza.
Además, la salida es el valor de retorno en este caso.
fuente
Brain-Flak ,
223193bytesIncluye +1 por
-A
-30 gracias a DJMcMayhem
Pruébalo en línea!
Esto simplemente empujó los valores ASCII de e imprime como caracteres.
Como referencia, se necesitan 338 bytes para generar el número real utilizando el meta golfista Integer .
Pruébalo en línea!
fuente
[]
. Por ejemplo:((((((((((((((((((((((((()()()){}){}()){}){}())[()()()()])[][]())[[]()()])[]))()()()())[[]()()])[][()])[()()()()])()()()())[(()()()){}()])()()()()))()()())[()])[()()]))()()()())[(()()()){}()])
(Posiblemente falte más)-A
ya que la invocación estándar ya incluye-f
, por lo que solo queda uno para hacer en su-fA
lugar[]
mirar eso cuando tenga la oportunidad. Gracias.MATL, 8 bytes
Esto probablemente podría mejorarse, pero todavía no estoy familiarizado con las cadenas y los tipos en MATL.
Pruébalo en matl.suever.net
Explicación:
fuente
cast
se usaba, pero tiene sentido sitypecast
se usa. Gracias por aclarar eso.Javascript 55 bytes
el código genera y luego alerta a la cadena 18446744073709551615 usando operaciones bit a bit
590300 >> 5 18446
59530-3 >> 3 7440
7370955
3 * 59 * 73 >> 3 1615
fuente
2588673709551615
para mí ...alert(0xafebff0+'7370955'+(3*59*73>>3))
funciona bienRápido, 8 bytes
patio exterior / repl - 15 bytes
fuente
TI-Basic, 10 bytes
fuente