En golf, el scratch estándar de un curso se calcula utilizando esta fórmula:
(3*num_of_3_par_holes + 4*num_of_4_par_holes + 5*num_of_5_par_holes) - difficulty_rating
Su tarea es calcular el scratch estándar de un campo de golf, dadas estas 4 entradas.
Debe tomar la entrada en cualquier forma estándar en el formato
[num_of_3_pars, num_of_4_pars, num_of_5_pars], difficulty rating
pero si guarda bytes, muchos pueden tomar la entrada de una manera diferente.
Debe generar el resultado final mediante cualquier método aceptado en meta, como regresar de una función.
¡El código más corto gana porque este es el código golf !
Respuestas:
Scratch, 145 bytes
-2 gracias a boboquack
- ??? porque escribirlo en Oto es más corto que el inglés
(Porque Scratch es el scratch estándar).
Aquí hay una muestra de ejecución:
.
fuente
Jalea , 6 bytes
Pruébalo en línea!
Cómo funciona
fuente
Java (OpenJDK 8) , 24 bytes
Pruébalo en línea!
fuente
Haskell , 22 bytes
Pruébalo en línea! Uso:
(3#2)5 7
rendimientos35
.Este formato de entrada no tan agradable es un byte más corto que la solución directa:
Formato de entrada sin puntos y agradable: (23 bytes)
Pruébalo en línea! Vincularse
f
y llamar conf [3,2,5] 7
.fuente
Mathematica, 13
14bytesGracias a @GregMartin. Tome la entrada como una lista de longitud 4.
fuente
{3,4,5,-1}.#&
(13 bytes).Python 3 , 28 bytes
Pruébalo en línea!
fuente
Javascript, 24 bytes
fuente
Perl6, 16 caracteres
(Sí, eso es un sub.)
Ejecución de muestra:
Pruébalo en línea!
fuente
Julia 0.5 , 15 bytes
Pruébalo en línea!
fuente
⋅
tres bytes o estoy contando mal? Sería.*
una mejora? editar: No importa, se perdió la parte de resumen..*
solo realiza la multiplicación por elementos; No toma la suma de los productos.C #, 24 bytes
fuente
Código de máquina x86-64, 14 bytes
Una función que sigue la convención de llamada System V AMD64 (ubicua en sistemas Gnu / Linux) que toma cuatro parámetros enteros:
EDI
= num_of_3_par_holesESI
= num_of_4_par_holesEDX
= num_of_5_par_holesECX
= dificultad_valoraciónDevuelve un solo valor, el scratch estándar, en el
EAX
registro.Mnemónicos de ensamblaje sin golf:
Solo una simple traducción de la fórmula. Lo interesante es que este es esencialmente el mismo código que escribirías al optimizar la velocidad también. Esto realmente muestra el poder de la x86
LEA
instrucción, que está diseñado para l oad un correo EFECTIVA un ddress, pero puede hacer la suma y la escala (multiplicación por las bajas potencias de 2) en una sola instrucción, por lo que es un poderoso multi-propósito caballo de batalla de la aritmética .fuente
Jalea ,
107 bytesPruébalo en línea!
-3 bytes gracias a Erik The Outgolfer!
¡Cómo funciona!
fuente
[]
pero puede usarlo3r5×⁸S_
para jugar más golf (3r5
->[3, 4, 5]
,⁸
= el argumento izquierdo para diferenciarlo delS
,×
es conmutativo).Octava , 14 bytes
Pruébalo en línea!
Aproximadamente el doble de tiempo que la respuesta MATL . Inicialmente literalmente lo porté a MATL, pero resultó que
iY*
es más largo que solo*s
. Tenga en cuenta que la entradaa
, que contiene los agujeros en orden y luego la dificultad, debe ser un vector de columna.fuente
@(a)[3:5 -1]*a
. La entrada es un vector de columna de[3 holes; 4 holes; 5holes; difficulty]
Julia , 21 bytes
Pruébalo en línea!
fuente
Neim , 7 bytes
Explicación:
Programa alternativo:
3𝐈ᛖ𝕋𝐬S𝕊
En lugar de presionar
345
y luego obtener los caracteres, crea la matriz[1 2 3]
usando3𝐈
, luego agrega 2 a cada elemento conᛖ
.Pruébalo en línea!
fuente
This commit was pushed 8 days before the answer was posted.
bueno, en realidad no necesitas esto.C (gcc) , 30 bytes
Pruébalo en línea!
fuente
a
.Swift 3 ,
2519 bytesMe di cuenta de que no necesitas el
var f=
, porque puedes llamarlo como una lambda Python:¡Pruébalo en línea!
Uso:,
{$0*3+$1*4+$2*5-$3}(a,b,c,d)
dondea,b,c,d
están los parámetros.fuente
brainfuck , 39 bytes
Pruébalo en línea!
Toma entradas e imprime salidas como caracteres ASCII; por ejemplo, el valor 99 se representaría como c.
Explicación:
fuente
Gallina , 38 bytes
fuente
dc, 14 caracteres
Los números deben pasarse en líneas separadas.
Ejecución de muestra:
Pruébalo en línea!
fuente
Brachylog ,
1816 bytesPruébalo en línea!
-2 gracias a Fatalize .
fuente
∧5⟦₁↺b;?z×ᵐġ₃+ᵐ-
son 2 bytes menos,,, 12 bytes
Explicación
Tome la entrada 4, 3, 2, 1 por ejemplo.
fuente
Cubix , 36 bytes
Pruébalo en línea!
Míralo correr
Un programa bastante lineal que gira sobre sí mismo varias veces. Pasos básicos:
I3*r;U;
obtenga la primera entrada, multiplique por 3 y limpie la pilaI4*/r\
obtenga la siguiente entrada y multiplique por 4. Gire el resultado hacia abajo.Iw5*Ur;w<;r;;W
obtener la siguiente entrada, multiplicar por 5 y limpiar la pilaI-r;w;
obtener la última entrada, restar del resultado del par 5 y limpiar la pila/+p+O\@
agregar al resultado par 4, llevar el resultado par3 a la parte superior agregar, generar y detenerfuente
HP-15C (RPN), 14 bytes
Códigos hexadecimales de instrucciones:
Versión legible:
Los cuatro números se cargan en la pila en orden antes de ejecutar el programa.
fuente
Excel VBA, 20 bytes
Anonymous VBE función de ventana inmediata que toma la entrada de la gama
[A3:A6]
de los cuales[A3:A5]
representan el número de3
,4
y5
hoyos par, respectivamente, y[A6]
representa la dificultad. Salidas a la ventana inmediata de VBELo anterior es una versión condensada de la llamada.
Donde
"=3*A3+4*A4+5*A5-A6"
se da para ser la fórmula de una celda anónima, como lo indica el[...]
contenedor, y?
es la versión obsoleta de laPrint
llamada con unDebug.
contexto implícitoVersión más divertida, 34 bytes
Función de ventana inmediata anónima VBE con las mismas condiciones de E / S que las anteriores.
Lo anterior es una versión condensada de la llamada.
Donde
"=SUMPRODUCT(A3:A5,ROW(A3:A5))"
se da como la fórmula de una celda anónima, como lo indica el[...]
contenedor, y?
es la versión obsoleta de laPrint
llamada con unDebug.
contexto implícito . En esta versión, el rango[A3:A5]
y los números de fila de ese rango (ROWS(A3:A5)
) se pasan como matricesVersión Excel, 18 bytes
Por supuesto, las versiones anteriores se prestan así a versiones sobresalientes de
y
fuente
R ,
2523 bytesPruébalo en línea!
fuente
sum(scan()*3:5)-scan()
es ligeramente más pequeñoscan
cuando hay múltiples entradas como esta, ¡pero qué sé!Befunge , 15 bytes
Pruébalo en línea!
fuente
Japt , 12 bytes
Pruébalo
fuente
Braingolf , 14 bytes
Pruébalo en línea!
fuente
05AB1E , 7 bytes
Pruébalo en línea!
fuente
3L
conā
como la primera entrada será una lista de longitud 3 de todos modos.