Para quem não sabia, Sigma é uma letra grega que é muito usada em matemática como sinal de soma. Dada uma string que representa uma expressão dependendo de que designaremos , calcule a soma dos resultados para , para cada . Concisa, você deve encontrar tal que:E ( k ) E ( k ) k ∈ { 1 , 2 , 3 , 4 , 5 } S
Um exemplo de expressão:
Especificações
- Você está garantido:
- que a expressão é válida, não contém erros e depende da sintaxe escolhida (por exemplo: se você apenas suportar
2*k
, não haverá2k
) - só ter definido os valores entre os seus resultados, de modo nenhum valor gosta
1/0
,inf
ounan
aparecerá
- que a expressão é válida, não contém erros e depende da sintaxe escolhida (por exemplo: se você apenas suportar
- Você pode supor que a expressão acima está ajustando os limites da linguagem de programação de sua escolha, portanto, isso não resultará em estouros ou outros erros relacionados a limites
- Qualquer outro caractere ASCII sem espaço em branco, em vez de,
k
pode ser escolhido - Seu programa deve suportar as seguintes operações:
- Adicionalmente (
+
,plus()
,add()
,sum()
) - subtracção (
-
,minus()
,subtract()
) - exponenciação (
**
,^
,pow()
ou outros, deve ser especificado), com apoio de bases negativas e expoentes - raiz quadrada na forma de
sqrt(k)
,k^0.5
,k**0.5
, ou no entanto, outra coisa que você deseja - multiplicação e divisão
- Adicionalmente (
- O envio pode ser um programa completo ou uma função, enquanto menciona seu uso
- Qualquer espaço em branco à direita / à esquerda é permitido ao gerar
- Precisão mínima: 2 casas decimais
Casos de teste (com 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 |
+---------------+--------------+
A pontuação será o número de bytes (dos sinalizadores de origem + compilador). O envio válido com a pontuação mais baixa ganha, enquanto observa que essas brechas são estritamente proibidas. Aqui está um pseudo-código Python, para tornar as coisas mais claras.
code-golf
math
number
arithmetic
Mr. Xcoder
fonte
fonte
plus()
vez de+
? (Mesmas perguntas para todos os outros operadores também)plus()
,add()
,sum()
e equivalentes são permitidos. Veja a edição.N N2/+N2**+
.E(x)
@ComradeSparklePonyRespostas:
Geléia , 5 bytes
Experimente online!
Insira uma cadeia monádica Jelly válida (eu os joguei no meu link).
Como funciona
fonte
Mathematica,
171413 bytesObrigado a Ian Miller por salvar 3 bytes.
Agradecemos a LegionMammal978 por economizar 1 byte.
A entrada deve ser uma expressão real contendo
k
, por exemplo:fonte
1,
dissoSum
.N@#~Sum~{k,5}&
Python 3 ,
4037 bytes3 bytes graças a Arnauld.
Truques do escopo da avaliação \ o /
Experimente online!
Usa em
k**0.5
vez desqrt(k)
.fonte
JavaScript (ES7),
3130 bytesUsa
k**0.5
parasqrt(k)
.Experimente online!
fonte
05AB1E ,
876 bytesExperimente online!
De entrada é em notação sufixo, e usa a N variável . 05AB1E é uma linguagem baseada em pilha, portanto, apenas a notação postfix funciona.
Formato de
E(N)
: escreva o (s) número (s) com o qual deseja executar a operação e, em seguida, escreva o sinal da operação. Por exemplo,3+4
seria3 4+
,3*4+2*3
seria3 4* 2 3* +
. Observe também que isso usa emt
vez desqrt
, e emm
vez de**
,sqrt(N)
seriaNt
.Explicação:
fonte
Oitava ,
50463129 bytesExperimente online!
Exponenciação é denotada com o sinal de intercalação
.^
e multiplicação é denotada com.*
.Isso declara uma função anônima que aceita argumentos
d
. Ele definek
como igual ao intervalo1:5
e soma o avaliadod
e o retorna.fonte
Japonês , 10 bytes
A sequência de entrada deve ter variável como maiúscula
K
.sqrt(K)
deve ser inserido comoK**0.5
.Experimente online!
Explicação
eval
o escopo não funcionou a meu favor; teve que redefinir a variável de contagemX
como globalK
.fonte
Ox
diretamente aeval(
ajudaria com isso ...Oitava,
2523 bytesExperimente online!
Exponenciação é denotada como
.^
fonte
APL (Dyalog) , 9 bytes
Experimente online!
Além disso
+
, subtração-
, multiplicação×
, divisão é÷
exponenciação*
e execução da direita para a esquerda, portanto, use()
para agrupar expressões.Entrada é em termos de
k
.Explicação
E aqui está uma solução que leva trens como entrada (como a resposta Jelly):
+/(⍎⎕)¨⍳5
.fonte
Lisp comum, 55 bytes
Experimente online
versão diferente e mais longa (58 bytes) - começa a ficar mais curta se você fizer uma soma de 1 a 7.
ainda outro método mais longo (
6564 bytes) - não define função - apenas insere sua expressão em um loop. Deve ficar mais curto para somas maiores.fonte
Rápido,
202184 bytesPor alguma razão, isso será executado apenas localmente :(.
Aqui está uma explicação do que estou fazendo:
Graças a @Mr. Xcoder para economizar 15 bytes!
fonte
TI-Basic, 12 bytes
Ligue com
"string":prgmNAME
, ondestring
está qualquer expressão TI-Basic válida deK
.fonte
Ans->u:sum(u(1,5
Empilhados , 16 bytes
Experimente online!
5~>
é um intervalo de 1 a 5, inclusive.2/
cria uma função diádica,"
é em pares e!
é executada. Dessa forma, mapeia o intervalo[1, 5]
com a entrada, que é avaliada após a definição do membro do intervalok
. Em seguida, os resultados são somados.fonte
dc ,
3124 bytesA entrada deve ser fornecida em notação polonesa reversa (também conhecida como notação postfix) e entre colchetes (
[]
) com:K
substituindok
como o parâmetro;+
representando adição;-
representando subtração e_
seguido por qualquer número representando um número negativo;*
representando multiplicação;/
representando divisão;^
representando exponenciação;v
representando a raiz quadrada.Por exemplo,
-2*k+k+3*k**2+k**0.5-k/2
seria inserido como[_2K*K+K2^3*+Kv+K2/-]
. Isso tira o devido proveito do fato deK
ser umdc
comando que retorna a precisão atual (inicialmente definida como1
). Portanto, no final, isso retorna a saída com uma precisão de6
.Experimente online!
fonte
R , 35 bytes
Experimente online!
O link TIO também inclui uma solução de função (38 bytes)
fonte
Tcl , 58 bytes
Experimente online!
Se funcionasse apenas com números inteiros, eu poderia jogar mais!
fonte