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>
Réponses:
Clip , 3
.s
est l'écart type,k
analyse l'entrée dans le formulaire{1,2,3}
.la source
Mathematica,
2422 octetsNice, Mathematica a une fonction intégrée
StandardDevi...
oh ... qui calcule l'écart type de l'échantillon, pas l'écart type de la population.Mais si nous utilisons
Variance
... oh ... même accord.Mais il existe encore une autre fonction intégrée:
Yay. :)
Cela fonctionne également pour 22 octets:
Et cela pour 27:
la source
Octave, 14 octets
Essayez-le sur ideone .
la source
g=
car le descripteur de fonction n'a pas besoin d'un nom pour être une soumission valide.kdb + , 3 octets
L'un des derviats APL devait avoir ceci comme intégré.
Essai
la source
Dyalog APL,
242321201917 octetsCeci définit un train de fonctions monadique sans nom, qui est équivalent à la fonction suivante.
Essayez-les en ligne sur TryAPL .
Comment ça fonctionne
Le code se compose de plusieurs trains.
Ceci définit un 3-train monadique (fourche)
M
qui exécute+/
(somme de tous les éléments) et≢
(longueur) pour l'argument de droite, puis applique÷
(division) aux résultats, renvoyant la moyenne arithmétique de l'entrée.C'est un autre fork qui s'applique
M
au bon argument, le répète une deuxième fois et applique×
(produit) aux résultats, renvoyant μ 2 .C'est encore une autre fourchette qui calcule le carré de la moyenne arithmétique comme expliqué précédemment, applique
×⍨
(produit avec lui-même) au bon argument, et enfin applique-
(différence) aux résultats.Pour l'entrée (x 1 ,…, x N ) , cette fonction renvoie (x 1 - μ 2 ,…, x N - μ 2 ) .
Cette fonction composée s'applique
M
à son argument de droite, puis*∘.5
. Ce dernier utilise le currying d'argument droit pour appliquer l'entrée de cartea
àa*0.5
(racine carrée dea
).Enfin, nous avons ce train monadique à 2 trains (au sommet), qui applique la fonction droite d'abord, puis la gauche à son résultat, calculant l'écart type comme suit.
la source
R,
414039363028 octetscode
Merci au bécher , Alex A. et MickyT pour beaucoup d'octets.
anciens codes
Cela devrait donner l'écart type de la population.
la source
cat
pour imprimer sur la console.^
pour l'exponentiation, qui est un octet plus court que**
.mean
renvoie un scalaire;sum
n'a aucun effet. 36 octets:x=scan();cat(mean((x-mean(x))^2)^.5)
Pyth,
20191713 octetsMerci à @FryAmTheEggman pour avoir joué au golf sur 4 octets!
Essayez-le en ligne.
Comment ça fonctionne
la source
CJam,
242221 octetsMerci à @aditsu pour avoir joué au golf sur 1 octet!
Essayez-le en ligne dans l' interpréteur CJam .
Comment ça fonctionne
la source
:mh
is genius btw :)Reduce by hypotenuse.
ce n'est pas quelque chose que vous voyez tous les jours.APL, 24 octets
Une approche légèrement différente de la solution Dyalog APL de Dennis . Cela devrait fonctionner avec n'importe quelle implémentation APL.
Cela crée une fonction monadique sans nom qui calcule le vecteur ( x - µ ) 2 as
2*⍨⍵-+/⍵÷≢⍵
, le divise par N (÷≢⍵
), prend la somme de ce vecteur en utilisant+/
, puis prend la racine carrée (.5*⍨
).Essayez-le en ligne
la source
{
DFNS}
,⍨
ou≢
. Cependant, chaque version prend en chargeR←F Y
R←(+/((Y-+/Y÷⍴Y)*2)÷⍴Y)*.5
Julia,
26 ans19 octetsCela crée une fonction sans nom qui accepte un tableau et renvoie un flottant.
Non golfé, je suppose:
la source
TI-BASIC, 7 octets
J'ai emprunté l'algorithme pour obtenir l'écart type de la population à partir de l'écart type de l'échantillon d' ici .
La solution la plus courte sans laquelle j'ai pu trouver
augment(
est de 9 octets:la source
stdDev(
calcule l'échantillon SD;stdDev(augment(Ans,{mean(Ans
calcule la population SD. C'est sur la page à laquelle vous avez lié.Haskell, 61 octets
Simple, sauf peut-être ma fonction de longueur personnalisée
sum(n>>[1])
pour tromper le système de type strict de Haskell.la source
sum(1<$n)
et<$>
pourmap
.Python 3.4+, 30 octets
Importe la fonction intégrée
pstdev
, par exemplela source
pstdev
après la première ligne, ça va? Je crois que xnor a fait ça il y a quelque temps avecsum
. Cela a du sens par rapport à la façon dont les lambdas anonymes seraient utilisés, c'estp=pstdev
-à- diremap(pstdev, [...])
pstdev
, commefrom statistics import*;pstdev
. Sinon, cela pourrait être n'importe quelle fonction de cette bibliothèque.JavaScript (ES6), 73 octets
la source
eval(a.join`+`)
au lieu dea.reduce((e,f)=>e+f)
Gelée , non compétitive
11 octets Cette réponse n'est pas concurrente, car elle utilise un langage postdaté.
Ceci est une traduction directe de ma réponse APL à Jelly. Essayez-le en ligne!
Comment ça fonctionne
la source
J, 18 octets
Ceci est une traduction directe de ma réponse APL à J.
Essayez-le en ligne!
la source
M
c'était un prédéfini intégré.M=:+/%#
est une définition de fonction en ligne.M=:+/%#
enregistre le verbe+/%#
dansM
, il appelle.Simplex v.0.5 , 43 octets
Juste parce que. J'ai vraiment besoin de jouer à cet octet de plus.
la source
Prolog (SWI), 119 octets
Code:
Explication:
Exemple:
Essayez-le en ligne ici
la source
Perl5,
393816 pour le script
+22 pour le
M
commutateur+ 1 pour le
E
commutateur= 39
Testé dans Strawberry 5.20.2.
Oh, mais j'ai réalisé que vous aviez dit que nos réponses pouvaient être des fonctions plutôt que des programmes. Dans ce cas,
a juste 38. Testé dans Strawberry 5.20.2 comme
la source
Python, 57 octets
Takes input as a list
Thanks @xnor
la source
.5
in place of0.5
to save a byte. Also do you meanlen(x)
instead oflen(l)
?x
andl
nonsense. But you can still do.5
to save a 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
explanation
result
la source
Fortran, 138 bytes
Just a straightforward implementation of the equation in Fortran:
la source
SmileBASIC, 105 bytes (as a function)
Je viens de remarquer que c'est autorisé d'être une fonction. Oups, cela réduit considérablement ma réponse. Cela définit une fonction
S
qui prend un tableau et renvoie l'écart type de la population. Allez lire l'autre pour une explication, mais sautez la partie d'analyse. Je ne veux pas recommencer.En tant que programme, 212 octets
Malheureusement, je dois prendre la liste d'entrée comme une chaîne et l'analyser moi-même. Cela ajoute plus de 100 octets à la réponse, donc si un format d'entrée autre qu'une liste séparée par des virgules est autorisé, je serais heureux de l'entendre. Notez également que parce que
VAL
c'est bogué, le fait d'avoir un espace avant la virgule ou de suivre la chaîne interrompt le programme. Après la virgule ou au début de la chaîne, c'est bien.Non golfé et expliqué:
la source
Axiome, 137 octets
La fonction m () retournerait la moyenne de la liste en entrée. Les deux fonctions en cas d'erreur renvoient% i la constante imaginaire sqrt (-1). Code pour le test et les résultats. [mais le résultat si c'est ok, c'est la partie réelle d'un nombre complexe]
la source
Python 3 , 49 octets
Essayez-le en ligne!
Takes in
l
, a list of integers, andN
, the number of integers present.la source
Pyt, 13 bytes
Implements the formula for standard deviation
la source