Mientras solicito algunos trabajos cuyo anuncio de empleo no establece el salario, imaginé a un entrevistador particularmente malvado que le daría al candidato la posibilidad de decidir su propio salario ... ¡"jugando al golf"!
Entonces es simplemente así:
Sin usar números, escriba un código que genere el salario anual que le gustaría que le ofrecieran.
Sin embargo, poder escribir código conciso es una piedra angular de esta empresa. Así que han implementado una escalera de antigüedad muy ajustada donde
los empleadores que escriben código de b bytes de largo pueden ganar un máximo de ($ 1'000'000) · b -0.75 .
estamos mirando (estas son las partes enteras, solo por razones de visualización):
1 byte → $1'000'000 15 bytes → $131'199
2 bytes → $594'603 20 bytes → $105'737
3 bytes → $438'691 30 bytes → $78'011
4 bytes → $353'553 40 bytes → $62'871
10 bytes → $177'827 50 bytes → $53'182
El reto
Escriba un programa o función que no ingrese y genere un texto que contenga un signo de dólar ( $
, U + 0024) y una representación decimal de un número (entero o real).
- Su código no puede contener los caracteres
0123456789
.
En la salida:
Opcionalmente, puede haber un espacio único entre el signo de dólar y el número.
Los espacios en blanco al final y al final y las nuevas líneas son aceptables, pero cualquier otro resultado está prohibido.
El número debe expresarse como un número decimal utilizando solo los caracteres
0123456789.
. Esto excluye el uso de notación científica.Se permite cualquier número de decimales.
Una entrada es válida si el valor que genera no es mayor que ($ 1'000'000) · b -0.75 , donde b es la longitud de bytes del código fuente.
Ejemplo de salida (las comillas no deben salir)
"$ 428000" good if code is not longer than 3 bytes
"$321023.32" good if code is not longer than 4 bytes
" $ 22155.0" good if code is not longer than 160 bytes
"$ 92367.15 \n" good if code is not longer than 23 bytes
"300000 $" bad
" lorem $ 550612.89" bad
"£109824" bad
"$ -273256.21" bad
"$2.448E5" bad
El marcador
¡El valor que genera es su puntaje! (El salario más alto gana, por supuesto).
Tabla de clasificación
Aquí hay un fragmento de pila para generar una tabla de clasificación regular y una descripción general de los ganadores por idioma.
Para asegurarse de que su respuesta se muestre, comience con un título, utilizando la siguiente plantilla de Markdown:
# Language Name, $X (Y bytes)
dónde X
está su salario y Y
el tamaño de su presentación. ( Y bytes
Puede estar en cualquier parte de su respuesta). Si mejora su puntaje, puede mantener los puntajes antiguos en el título, tachándolos. Por ejemplo:
# Ruby, <s>$111111.111... (18 bytes)</s> <s>$111999 (17 bytes)</s> $123456 (16 bytes)
También puede hacer que el nombre del idioma sea un enlace, que luego aparecerá en el fragmento de la tabla de clasificación:
# [><>](http://esolangs.org/wiki/Fish), $126,126 (13 bytes)
Editar: puntaje máximo permitido (redondeado) por conteo de bytes, para una referencia más rápida, envíe un texto aquí :
fuente
$80,662.67
lugar de$80662.6659
? Sus reglas parecen excluir la coma, lo que significa que no podría usar ninguna función de moneda incorporada.Respuestas:
fiesta, $ 127127
Pruébalo en línea!
Dado que el
x
comando no existe, produce errores y establece el código de salida en127
.Luego, el código genera un signo de dólar seguido de
$?
dos veces. La$?
variable almacena el código de salida del comando anterior, por lo que se genera$127127
en 13 bytes .fuente
x
no existe. Como beneficio adicional, se bloqueó al intentar abrirlo, ¡así que obtuve en su$11
lugar!]
lugar dex
, el primero es menos probable que exista.w
es una cosa (cercanawho
) y sale con éxito, ¡así que obtienes $ 00 por ello!Java 8, $ 131,199.00 (15 bytes)
Pruébalo en línea.
Explicación:
Utilicé un programa para generar un carácter ASCII imprimible en el rango
[32, 126]
que, al dividir131199
, tendría la menor cantidad de valores decimales. Como se101
puede dividir131199
equitativamente, lo que resulta1299
es que solo me faltan 31 centavos de mi salario máximo posible según mi recuento de bytes de 15.fuente
CJam , 5 bytes, $ 262'144
Pruébalo en línea!
Cómo funciona
fuente
CJam , (5 bytes) $ 294204.018 ...
Pruébalo en línea!
Explicación:
Lo deduje de la respuesta de Dennis, pero busqué combinaciones de números que produjeran un resultado más alto. Casi me , pero vi que esaπ π114 294000
P
es la variable para , y que . La letra tiene un valor de 11 en CJam, dando el código anterior.π 11 ≈ 294000B
fuente
R , 20 bytes,
$103540.9
Pruébalo en línea!
El máximo para 20 bytes es
$105737.1
, ¡así que esto está bastante cerca del límite salarial!Este sería un buen aumento, y si me pagan por hacer golf de código ...
fuente
pi
con la suma de un conjunto de datos ... requeriría un enfoque programático para evaluar varias combinaciones de operadores / conjuntos de datos / pi para acercarse lo máximo posible al máximo. No hay tiempo para esto ahora, pero parece un buen desafío en sí mismo.GS2 , (5 bytes) $ 292,929
Un programa completo (que se muestra aquí usando la página de códigos 437 ). (Salario máximo alcanzable @ 5 bytes es $ 299069.75)
Pruébalo en línea!
Se basa en la respuesta GS2 de Dennis ...
fuente
0x0724011d41
es 5 bytes por mi cuenta ...R , 21 bytes $ 99649.9
Pruébalo en línea!
Un
R
enfoque diferente : vea también la respuesta de GiuseppeMuy cerca del máximo de $ 101937 para este bytecount.
Prima:
object.size()
R , 24 bytes $ 89096
Pruébalo en línea!
Probablemente esto depende del sistema, pero cuando hice esto en TIO obtuve $ 89096, cerca del límite de 92223 para 24 bytes.
fuente
datasets
paquete tiene mucho sentido.prod
ysum
al azar ... ¡pero la producción aumenta demasiado rápido!sum(volcano)
es690907
pero eso tendría que ser aproximadamente 1 byte para trabajar, jajaJavaScript (ES6), 19 bytes, $ 109,839
Pruébalo en línea!
Sin
atob()
(Node.js), 26 bytes, $ 86,126Pruébalo en línea!
La concatenación de '$' con los códigos ASCII de 'V' (86) y '~' (126).
fuente
Buffer
. Primera vez en reconocer esta clase; ')Buffer
el constructor está en desuso, por lo que seBrainfuck auto modificable , 16 bytes, $ 124444
Pruébalo en línea!
fuente
:
, así que puedes eliminarlo y agregar otro+
por $ 124444.1
, ¿por qué no contar3
y luego imprimir solo3
s? Guardaría un byte e imprimiría un número más alto.PHP, $ 131116 (8 bytes)
No vi uno para php y quería lanzar uno. Sé que en algún lugar de PHP hay un tipo de letra incorrecto que reduciría esto a la mitad, pero no puedo encontrarlo en este momento.
Esto solo aprovecha las etiquetas cortas de PHP y las constantes integradas de PHP.
Pruébalo en línea!
fuente
<?="$".
hacerlo, solo haz$<?=
y guarda algunos bytes.GS2 , 5 bytes, $ 291'000
Esta es una representación CP437 del código fuente binario.
Pruébalo en línea!
Cómo funciona
fuente
Excel 19 bytes $ 107899.616068361
Explicación:
fuente
vim,
$ 99999$ 110000$ 120000Pruébalo en línea!
Utiliza el registro de expresión (tenga en cuenta que hay un carácter <Cr>, que es invisible en la mayoría de las fuentes, entre
$
y=
, para un total de 13 bytes ) para insertar el valor de la'pvh'
opción por el valor de la'ur'
opción.'previewheight'
es la opción que controla la altura de las ventanas de vista previa, que es 12 por defecto.'undoreload'
es el número máximo de líneas que puede tener un búfer antes de que vim deje de almacenarlo en la memoria para deshacer, y su valor predeterminado es 10,000.fuente
Jalea ,
$ 256256 $ 256000(6 bytes ) $ 257.256Un programa completo (El salario máximo alcanzable a 6 bytes es $ 260847.43)
Pruébalo en línea!
¿Cómo?
Anterior...
5 bytes $ 256256
('$' concatena 256, repite 256, causando impresión implícita provisional)
6 bytes $ 256000:
(256 × 1000 ṭack '$')
fuente
C#
Programa completo,
72 bytes, $ 4044866 bytes, $ 43008Pruébalo en línea!
Explicación
El operador de desplazamiento a la izquierda trata los caracteres
'T'
y los'i'
enteros 84 y 105 respectivamente y realiza el desplazamientoLambda,
19 bytes, $ 10956817 bytes, $ 118784Pruébalo en línea!
Editar Gracias a @ LegionMammal978 y @Kevin por guardar 2 bytes
fuente
()=>
queo=>
para un byte adicional -1.o=>"$"+('t'<<'j')
con $ 118784.PHP, 13 bytes, salario de $ 144000
Desafortunadamente para este trabajo, se requiere mudarme a Mauricio (bueno, podría mudarme un poco menos hacia el este, sin embargo, cada zona horaria menos generaría una caída salarial de $ 36k). Para compensar las molestias, mi salario aumenta en $ 1 cada año bisiesto.
Esto solo muestra
Z
la zona horaria en segundos y agrega si es o no un año bisiesto.fuente
brainfuck , 43 bytes, $ 58888
Pruébalo en línea!
Cómo funciona
fuente
Python 3 , (22 bytes) $ 98,442
Pruébalo en línea!
Al igual que la respuesta de Ruby de Doorknob , el carácter Unicode de 4 bytes utilizado aquí
𘂊
, tiene un valor ordinal del salario entero máximo alcanzable en 22 bytes.Tenga en cuenta que
print()
imprime sus argumentos sin nombre separados por espacios de forma predeterminada (sep
es un argumento con nombre opcional).fuente
Gol> <> , $ 207680 en 8 bytes
Pruébalo en línea!
Cómo funciona:
Curiosamente, puede usar en
h
lugar den;
, lo que arroja'o**h5$
un puntaje de $ 231504, pero no puede usar 0-9, y no hay otra forma de 1 byte para empujar 53, el valor ASCII de5
fuente
Jalea , 8 bytes, $ 210176.48625619375
3535 (
⁽½"
) multipli (×
) ed por su sqrt (½
).Pruébalo en línea!
fuente
Mathematica, 18 bytes, $ 107,163.49
Programa completo; correr usando
MathematicaScipt -script
. Salidas$107163.4882807548
seguidas de una nueva línea final. He comprobado que esta es la solución más anotador de la forma en que se compone de , , , y .$~Print~N[expr]
expr
Pi
E
I
+-* /()!
fuente
I
?I
y no soloI I
oI/I
generalmente tendrá un+ 0.*I
tachuelas en élN
."$"~Print~Exp[E!N@E]
(que tiene la misma longitud que"$"~Print~N[E^(E!E)]
), pero con las comillas alrededor$
, la salida apenas superaba el límite.$~Print~⌈E^(E!E)⌉
con caracteres de techo izquierdo y derecho con un carácter sería un poco más y 17 bytes05AB1E (5 bytes), $ 262626
Pruébalo en línea!
$
["$", 26, 26, 26]
J
fuente
JavaScript (Node.js) , 23 bytes, $ 65535
Pruébalo en línea!
Esto es lo mejor que puedo obtener sin
atob
embargo, aunque hay un gran espacio de mejora tbhYa sabes, no tener una función de conversión de caracteres cortos a ASCII es MUCHO.
DESPUÉS DE UN DÍA ENTERO
JavaScript (Node.js) , 30 bytes, $ 78011
Pruébalo en línea!
o: 29 bytes, $ 80020
Donde
estaU+13894 INVALID CHARACTER
Oh
String.codePointAt
! ¡Me he olvidado por completo de esto!Una broma (15B, $ 130000), no valdrá en absoluto sino solo por diversión
fuente
_=>"$⑮萬"
^ _ ^x1683F
?_=>"$"+parseInt('1V0I',36)
también es más alto que lo que tienes hasta ahora, por lo que es posible que desees agregar ese también. Lástima que no pueda convertir la base 64 a decimal en JavaScript ...MATLAB, 17 bytes, $ 112222
Vieja respuesta:
fuente
+pi
Rubí, $ 119443
Pruébalo en línea!
La salida entera máxima para 17 bytes. El carácter Unicode es U + 1D293, que es 119443 en hexadecimal.
fuente
$><<?$<<$$
en un sistema de larga duración. Las respuestas hasta 177827 son válidas.dc , $ 169169 10 bytes
Pruébalo en línea!
Esto imprime 13 (
D
) al cuadrado, dos vecesfuente
Japt, 5 bytes, $ 262144
Pruébalo
La explicación
I
es la constante Japt para64
, la³
cubica y luego la'$+
concatena con el símbolo del dólar.fuente
"${I³
Befunge-98 (PyFunge) , 8 bytes, $ 209728
Pruébalo en línea!
El personaje
:
se ha calculado utilizando el siguiente método:El uso
@
yf
también funciona, pero sólo da $ 208896.fuente
Befunge-93 , 9 bytes, $ 192448
Pruébalo en línea!
Salidas
$192448
, solo dos dólares y nueve centavos por debajo del máximo. ¡Esto incluso funciona como un políglota con implementaciones adecuadas de Befunge-98 , donde ni siquiera tiene que arrojar un error de instrucción no reconocido!Explicación:
fuente
Cubix , $ 155088 (12 bytes)
Pruébalo en línea!
Un problema interesante era esperar reducirlo a 7 u 8 bytes, pero resultó difícil. Empuja los caracteres ე y $ a la pila, genera el
$
, multiplica la parte superior de la pila, genera el número y se detiene. Todavía espero encontrar una opción de byte inferiorfuente