var QUESTION_ID=60901,OVERRIDE_USER=30525;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
Respostas:
Clipe , 3
.s
é o desvio padrão,k
analisa a entrada no formulário{1,2,3}
.fonte
Mathematica,
2422 bytesBom, o Mathematica possui um
StandardDevi...
oh embutido ... que calcula o desvio padrão da amostra, não o desvio padrão da população.Mas e se usarmos
Variance
... oh ... o mesmo acordo.Mas há ainda outro recurso relacionado:
Yay. :)
Isso também funciona para 22 bytes:
E isso por 27:
fonte
Oitava, 14 bytes
Experimente em ideone .
fonte
g=
pois o identificador da função não precisa de um nome para ser um envio válido.kdb + , 3 bytes
Um dos derviados da APL precisava ter isso como incorporado.
Execução de teste
fonte
Dyalog APL,
242321201917 bytesIsso define um trem de função monádico sem nome, que é equivalente à seguinte função.
Experimente online no TryAPL .
Como funciona
O código consiste em vários trens.
Isso define um trem monádico (bifurcação)
M
que executa+/
(soma de todos os elementos) e≢
(comprimento) para o argumento correto, depois aplica÷
(divisão) aos resultados, retornando a média aritmética da entrada.Essa é outra bifurcação que se aplica
M
ao argumento correto, repete isso uma segunda vez e aplica×
(produto) aos resultados, retornando µ 2 .Este é mais um garfo que calcula o quadrado da média aritmética conforme explicado anteriormente, aplica-se
×⍨
(produto próprio) ao argumento correto e, finalmente, aplica-se-
(diferença) aos resultados.Para entrada (x 1 ,…, x N ) , esta função retorna (x 1 - μ 2 ,…, x N - μ 2 ) .
Essa função composta é aplicada
M
ao seu argumento correto, então*∘.5
. O último usa o argumento correto para aplicar a entrada do mapaa
ema*0.5
(raiz quadrada dea
).Por fim, temos esse trem monádico de dois trens (em cima), que aplica primeiro a função correta e depois a esquerda ao resultado, calculando o desvio padrão da seguinte maneira.
fonte
R,
414039363028 bytescódigo
Obrigado ao beaker , Alex A. e MickyT, por muitos bytes.
códigos antigos
Isso deve gerar o desvio padrão da população.
fonte
cat
para imprimir no console.^
para exponenciação, que é um byte menor que**
.mean
retorna um escalar;sum
não tem efeito. 36 bytes:x=scan();cat(mean((x-mean(x))^2)^.5)
Pitão,
20191713 bytesGraças a @FryAmTheEggman por jogar fora 4 bytes!
Experimente online.
Como funciona
fonte
CJam,
242221 bytesObrigado ao @aditsu por jogar fora 1 byte!
Experimente on-line no intérprete CJam .
Como funciona
fonte
:mh
é genial btw :)Reduce by hypotenuse.
não é algo que você vê todos os dias.APL, 24 bytes
Uma abordagem um pouco diferente da solução Dennis Dyalog APL . Isso deve funcionar com qualquer implementação de APL.
Isso cria uma função monádica sem nome que calcula o vetor ( x - µ ) 2 como
2*⍨⍵-+/⍵÷≢⍵
, divide isso por N (÷≢⍵
), pega a soma desse vetor usando+/
e pega a raiz quadrada (.5*⍨
).Experimente online
fonte
{
NDR}
,⍨
ou≢
. No entanto, todas as versões suportamR←F Y
R←(+/((Y-+/Y÷⍴Y)*2)÷⍴Y)*.5
Julia,
2619 bytesIsso cria uma função sem nome que aceita uma matriz e retorna um valor flutuante.
Ungolfed, eu acho:
fonte
TI-BASIC, 7 bytes
Peguei emprestado o algoritmo para obter o desvio padrão da população a partir do desvio padrão da amostra daqui .
A solução mais curta que eu poderia encontrar sem
augment(
é de 9 bytes:fonte
stdDev(
calcula o SD da amostra;stdDev(augment(Ans,{mean(Ans
calcula a população SD. Está na página à qual você vinculou.Haskell, 61 bytes
Simples, exceto talvez a minha função de comprimento personalizado
sum(n>>[1])
para enganar o sistema de tipos estritos de Haskell.fonte
sum(1<$n)
e<$>
paramap
.Python 3.4 ou superior, 30 bytes
Importa a função incorporada
pstdev
, por exemplofonte
pstdev
após a primeira linha está ok? Acredito que o xnor fez isso há um tempo atrássum
. É uma espécie de wrt faz sentido como lambdas anônimo seria usado iep=pstdev
oumap(pstdev, [...])
pstdev
, tipofrom statistics import*;pstdev
. Caso contrário, isso poderia ser qualquer função dessa biblioteca.JavaScript (ES6), 73 bytes
fonte
eval(a.join`+`)
vez dea.reduce((e,f)=>e+f)
Geléia , não concorrente
11 bytes Esta resposta não é concorrente, pois usa um idioma que pós-data do desafio.
Esta é uma tradução direta da minha resposta do APL para Jelly. Experimente online!
Como funciona
fonte
J, 18 bytes
Esta é uma tradução direta da minha resposta do APL para J.
Experimente online!
fonte
M
foi um pré-definidos construído dentro.M=:+/%#
é uma definição de função embutida.M=:+/%#
salva o verbo+/%#
emM
, em seguida, chama-lo.Simplex v.0.5 , 43 bytes
Só porque. Eu realmente preciso jogar este mais um byte.
fonte
Prolog (SWI), 119 bytes
Código:
Explicação:
Exemplo:
Experimente online aqui
fonte
Perl5,
393816 para o script
+22 para o
M
comutador+ 1 para o
E
comutador= 39
Testado em morango 5.20.2.
Ah, mas entendi que você disse que nossas respostas podem ser funções, e não programas. Nesse caso,
tem apenas 38. Testado no Strawberry 5.20.2 como
fonte
Python, 57 bytes
Recebe entrada como uma lista
Obrigado @xnor
fonte
.5
no lugar de0.5
salvar um byte. Você também quer dizer emlen(x)
vez delen(l)
?x
el
absurdo. Mas você ainda pode fazer.5
para salvar um byte.sum((x-sum(l)/len(l))**2for x in l)
.lambda l:(sum(x*x*len(l)for x in l)-sum(l)**2)**.5/len(l)
.PowerShell, 122
explicação
resultado
fonte
Fortran, 138 bytes
Apenas uma implementação direta da equação no Fortran:
fonte
SmileBASIC, 105 bytes (em função)
Acabei de notar que é permitido que seja uma função. Opa, isso reduz drasticamente a minha resposta. Isso define uma função
S
que pega uma matriz e retorna o desvio padrão da população. Leia a outra para obter uma explicação, mas pule a parte da análise. Eu não quero fazer isso de novo.Como programa, 212 bytes
Infelizmente, tenho que pegar a lista de entrada como uma string e analisá-la eu mesma. Isso adiciona mais de 100 bytes à resposta, portanto, se algum formato de entrada diferente de uma lista separada por vírgulas for permitido, ficarei feliz em ouvi-lo. Observe também que, por
VAL
ser um buggy, ter um espaço antes da vírgula ou seguir a sequência interrompe o programa. Após a vírgula ou no início da string, tudo bem.Ungolfed e explicou:
fonte
Axioma, 137 bytes
A função m () retornaria a média da lista na entrada. Ambas as funções em erro retornam% i a constante imaginária sqrt (-1). Código para teste e resultados. [mas o resultado, se estiver ok, é a parte real de um número complexo]
fonte
Python 3 , 49 bytes
Experimente online!
Recebe
l
uma lista de números inteiros eN
o número de inteiros presentes.fonte
Pyt , 13 bytes
Implementa a fórmula para o desvio padrão
fonte