Para aquellos que no sabían, Sigma es una letra griega que se usa mucho en matemáticas como signo de suma. Dada una cadena que representa una expresión dependiendo de que denotaremos , calcule la suma de los resultados para , para cada . De manera concisa, debe encontrar tal que:E ( k ) E ( k ) k ∈ { 1 , 2 , 3 , 4 , 5 } S
Un ejemplo de una expresión:
Especificaciones
- Estás garantizado:
- que la expresión es válida, por lo que no contiene errores, y que depende de la sintaxis elegida (por ejemplo: si solo admite
2*k
, no habrá2k
) - que sólo han definido los valores entre sus resultados, por lo que no hay valores como
1/0
,inf
onan
aparecerá
- que la expresión es válida, por lo que no contiene errores, y que depende de la sintaxis elegida (por ejemplo: si solo admite
- Puede suponer que la expresión anterior se ajusta a los límites del lenguaje de programación de su elección, por lo que no provocará desbordamientos ni ningún otro error relacionado con el límite.
- Se
k
puede elegir cualquier otro carácter ASCII que no sea un espacio en blanco en lugar de - Su programa debe soportar las siguientes operaciones:
- Además (
+
,plus()
,add()
,sum()
) - resta (
-
,minus()
,subtract()
) - exponenciación (
**
,^
,pow()
o de otros, debe ser especificada), con apoyo a las bases negativas y exponentes - raíz cuadrada en forma de
sqrt(k)
,k^0.5
,k**0.5
, o como otra cosa que desea - multiplicación y división
- Además (
- El envío puede ser un programa completo o una función, mientras menciona su uso
- Cualquier espacio en blanco al final / al inicio está permitido al generar
- Precisión mínima: 2 decimales
Casos de prueba (con k
)
+---------------+--------------+
| Input = E(k) | Output |
|---------------+--------------|
|2*k | 30 |
|---------------+--------------|
|sqrt(k) | 8.38 | (* with minimum decimal precision)
|---------------+--------------|
|k+k/2+k**2 | 77.5 |
|---------------+--------------|
|k**2 | 55 |
+---------------+--------------+
La puntuación será el número de bytes (de las banderas fuente + compilador). La presentación válida con la puntuación más baja gana, mientras se toma nota de que estas lagunas están estrictamente prohibidas. Aquí hay un pseudocódigo de Python, para aclarar las cosas.
code-golf
math
number
arithmetic
Sr. Xcoder
fuente
fuente
plus()
lugar de+
? (Las mismas preguntas para todos los demás operadores también)plus()
,add()
,sum()
se permite y equivalentes. Ver la edición.N N2/+N2**+
.E(x)
indique claramente el "formato" de @ComradeSparklePonyRespuestas:
Jalea , 5 bytes
Pruébalo en línea!
Ingrese una cadena monádica Jelly válida (las golfé en mi enlace).
Cómo funciona
fuente
Mathematica,
171413 bytesGracias a Ian Miller por guardar 3 bytes.
Gracias a LegionMammal978 por guardar 1 byte.
La entrada debe ser una expresión real que contenga
k
, por ejemplo:fuente
1,
para esoSum
.N@#~Sum~{k,5}&
Python 3 ,
4037 bytes3 bytes gracias a Arnauld.
Evalúa trucos de alcance \ o /
Pruébalo en línea!
Usos en
k**0.5
lugar desqrt(k)
.fuente
JavaScript (ES7),
3130 bytesUsos
k**0.5
parasqrt(k)
.Pruébalo en línea!
fuente
05AB1E ,
876 bytesPruébalo en línea!
De entrada es en notación postfix, y utiliza la variable N . 05AB1E es un lenguaje basado en pila, por lo que solo funciona la notación postfix.
Formato de
E(N)
: escriba los números con los que desea realizar la operación y luego escriba el signo de la operación. Por ejemplo,3+4
sería3 4+
,3*4+2*3
sería3 4* 2 3* +
. También tenga en cuenta que esto usa ent
lugar desqrt
, y enm
lugar de**
, asísqrt(N)
seríaNt
.Explicación:
fuente
Octava ,
50463129 bytesPruébalo en línea!
La exponenciación se denota con el símbolo de intercalación
.^
y la multiplicación se denota con.*
.Esto declara una función anónima que toma en argumento
d
. Establecek
ser igual al rango1:5
y suma lo evaluadod
y lo devuelve.fuente
Japt , 10 bytes
La cadena de entrada debe tener una variable en mayúscula
K
.sqrt(K)
debe ingresarse comoK**0.5
.Pruébalo en línea!
Explicación
eval
el alcance no funcionó a mi favor; tuvo que redefinir la variable de conteoX
como globalK
.fuente
Ox
directamenteeval(
ayudaría con eso ...Octava,
2523 bytesPruébalo en línea!
La exponenciación se denota como
.^
fuente
APL (Dyalog) , 9 bytes
Pruébalo en línea!
La suma es
+
, la resta es-
, la multiplicación es×
, la división es la÷
exponenciación*
y la ejecución es de derecha a izquierda, así que use()
para agrupar expresiones.La entrada es en términos de
k
.Explicación
Y he aquí una solución que toma como entrada los trenes (como la respuesta Jelly):
+/(⍎⎕)¨⍳5
.fuente
Lisp común, 55 bytes
Pruébalo en línea
versión diferente, más larga (58 bytes): comienza a acortarse si realiza la suma de 1 a 7.
otro método más largo (
6564 bytes), no define la función, simplemente inserta su expresión en un bucle. Debería acortarse para sumas más grandes.fuente
Swift,
202184 bytesPor alguna razón, esto solo se ejecutará localmente :(.
Aquí hay una explicación de lo que estoy haciendo:
Gracias a @Mr. ¡Xcoder para guardar 15 bytes!
fuente
TI-Basic, 12 bytes
Llame con
"string":prgmNAME
, dondestring
es cualquier expresión válida de TI-Basic deK
.fuente
Ans->u:sum(u(1,5
Apilado , 16 bytes
Pruébalo en línea!
5~>
es un rango de 1 a 5 inclusive.2/
hace una función diádica,"
es por pares y!
se ejecuta. Esto mapea el rango[1, 5]
con la entrada, que luego se evalúa después de definir el miembro del rango que serák
. Luego, se resumen los resultados.fuente
dc ,
3124 bytesLa entrada debe darse en notación polaca inversa (también conocida como notación postfix) y encerrada entre corchetes (
[]
) con:K
reemplazandok
como el parámetro;+
que representa la suma;-
representando resta y_
seguido de cualquier número que represente un número negativo;*
representando multiplicación;/
división representativa;^
representando exponenciación;v
representando la raíz cuadrada.Por ejemplo,
-2*k+k+3*k**2+k**0.5-k/2
sería ingresado como[_2K*K+K2^3*+Kv+K2/-]
. Esto aprovecha el hecho de queK
es undc
comando que devuelve la precisión actual (inicialmente establecida en1
). Por lo tanto, al final, esto devuelve la salida con una precisión de6
.Pruébalo en línea!
fuente
R , 35 bytes
Pruébalo en línea!
El enlace TIO también incluye una solución de función (38 bytes)
fuente
Tcl , 58 bytes
Pruébalo en línea!
Si solo funcionara con enteros, ¡podría jugar más golf!
fuente