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>
Antworten:
Clip , 3
.s
k
Ist die Standardabweichung, analysiert die Eingabe im Formular{1,2,3}
.quelle
Mathematica,
2422 BytesSchön, Mathematica hat eine eingebaute
StandardDevi...
oh ..., das die Standardabweichung der Stichprobe berechnet, nicht die Standardabweichung der Grundgesamtheit.Aber was ist, wenn wir verwenden
Variance
... oh ... den gleichen Deal machen.Aber es gibt noch ein anderes eingebautes:
Yay. :)
Dies funktioniert auch für 22 Bytes:
Und das für 27:
quelle
Oktave, 14 Bytes
Probiere es auf ideone aus .
quelle
g=
da das Funktionshandle keinen Namen benötigt, um eine gültige Übermittlung zu sein.kdb + , 3 bytes
Einer der APL-Derviates musste dies als eingebaut haben.
Testlauf
quelle
Dyalog APL,
242321201917 BytesDies definiert einen unbenannten, monadischen Funktionszug, der der folgenden Funktion entspricht.
Probieren Sie sie online auf TryAPL aus .
Wie es funktioniert
Der Code besteht aus mehreren Zügen.
Dies definiert einen monadischen 3-Zug (Fork)
M
, der+/
(Summe aller Elemente) und≢
(Länge) für das richtige Argument ausführt und dann÷
auf die Ergebnisse (Division) angewendet wird, wobei das arithmetische Mittel der Eingabe zurückgegeben wird.Dies ist eine weitere Verzweigung, die
M
auf das richtige Argument zutrifft , dies ein zweites Mal wiederholt und×
auf die Ergebnisse (Produkt) zutrifft und μ 2 zurückgibt .Dies ist eine weitere Abzweigung, die das Quadrat des arithmetischen Mittels wie oben erläutert berechnet
×⍨
, das richtige Argument (Produkt mit sich selbst) und schließlich-
das Ergebnis (Differenz) anwendet .Für die Eingabe (x 1 ,…, x N ) gibt diese Funktion (x 1 - μ 2 ,…, x N - μ 2 ) zurück .
Diese zusammengesetzte Funktion gilt dann
M
für ihr rechtes Argument*∘.5
. Letzterer verwendet das richtige Argument currying, um eine Map-Eingabea
aufa*0.5
(Quadratwurzel vona
) anzuwenden .Schließlich haben wir diesen monadischen 2-Zug (oben), der zuerst die rechte und dann die linke Funktion auf das Ergebnis anwendet und die Standardabweichung wie folgt berechnet.
quelle
R
414039363028 BytesCode
Vielen Dank an Becher , Alex A. und MickyT für viel Bytes.
alte Codes
Dies sollte die Populationsstandardabweichung ergeben.
quelle
cat
, um auf der Konsole zu drucken.^
für die Exponentiation verwendet, die ein Byte kürzer als ist**
.mean
ein Skalar zurückgegeben wird.sum
hat keine Wirkung. 36 Bytes:x=scan();cat(mean((x-mean(x))^2)^.5)
Pyth,
20191713 BytesVielen Dank an @FryAmTheEggman für das Abschlagen von 4 Bytes!
Probieren Sie es online aus.
Wie es funktioniert
quelle
CJam,
242221 BytesVielen Dank an @aditsu für das Golfen ab 1 Byte!
Probieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
quelle
:mh
is genius btw :)Reduce by hypotenuse.
ist nicht etwas, was man jeden Tag sieht.APL, 24 Bytes
Ein etwas anderer Ansatz als die Dyalog APL-Lösung von Dennis . Dies sollte mit jeder APL-Implementierung funktionieren.
Dies erzeugt eine unbenannte monadische Funktion, die den Vektor ( x - µ ) 2 als berechnet
2*⍨⍵-+/⍵÷≢⍵
, diesen durch N (÷≢⍵
) dividiert , die Summe dieses Vektors mit+/
und dann die Quadratwurzel (.5*⍨
) nimmt.Probieren Sie es online aus
quelle
{
DFNS}
,⍨
oder≢
. Allerdings unterstützt jede VersionR←F Y
R←(+/((Y-+/Y÷⍴Y)*2)÷⍴Y)*.5
Julia,
2619 BytesDadurch wird eine unbenannte Funktion erstellt, die ein Array akzeptiert und einen Gleitkommawert zurückgibt.
Ungolfed, denke ich:
quelle
TI-BASIC, 7 Bytes
Ich lieh den Algorithmus Standardabweichung von Proben - Standardabweichung Suche von hier .
Die kürzeste Lösung, die ich ohne finden könnte,
augment(
ist 9 Bytes:quelle
stdDev(
berechnet die Sample-SD;stdDev(augment(Ans,{mean(Ans
berechnet die Population SD. Das ist auf der Seite, die Sie verlinkt haben.Haskell, 61 Bytes
Ganz einfach, außer vielleicht meine benutzerdefinierte Längenfunktion
sum(n>>[1])
, um Haskells strenges Typensystem zu überlisten.quelle
sum(1<$n)
und<$>
für verwendenmap
.Python 3.4+, 30 Bytes
Importiert die eingebaute Funktion
pstdev
, zquelle
pstdev
nachdem die erste Zeile in Ordnung ist? Ich glaube, xnor hat das vor einiger Zeit mit gemachtsum
. Es macht irgendwie Sinn, wie anonyme Lambdas verwendet werden, dhp=pstdev
odermap(pstdev, [...])
pstdev
doch noch schreiben , wiefrom statistics import*;pstdev
. Andernfalls kann dies eine beliebige Funktion aus dieser Bibliothek sein.JavaScript (ES6), 73 Byte
quelle
eval(a.join`+`)
anstatta.reduce((e,f)=>e+f)
Gelee , nicht konkurrierend
11 Bytes Diese Antwort ist nicht konkurrierend, da sie eine Sprache verwendet, die die Herausforderung datiert.
Dies ist eine direkte Übersetzung meiner APL-Antwort auf Jelly. Probieren Sie es online!
Wie es funktioniert
quelle
J, 18 Bytes
Dies ist eine direkte Übersetzung meiner APL-Antwort an J.
Probieren Sie es online!
quelle
M
ob ein vordefinierter eingebaut war.M=:+/%#
ist eine Inline-Funktionsdefinition.M=:+/%#
speichert das Verb+/%#
inM
und ruft es dann auf.Simplex v.0.5 , 43 Bytes
Einfach weil. Ich muss wirklich noch ein Byte Golf spielen.
quelle
Prolog (SWI), 119 Bytes
Code:
Erläuterung:
Beispiel:
Probieren Sie es hier online aus
quelle
Perl5,
393816 für das Skript
+22 für den
M
Schalter+ 1 für den
E
Schalter= 39
Getestet in Strawberry 5.20.2.
Oh, aber dann wurde mir klar, dass Sie sagten, unsere Antworten könnten Funktionen anstelle von Programmen sein. In diesem Fall,
hat gerade 38. Getestet in Strawberry 5.20.2 als
quelle
Python, 57 Bytes
Übernimmt die Eingabe als Liste
Vielen Dank an @xnor
quelle
.5
der an Ort und Stelle0.5
ein Byte zu speichern. Meinst du auchlen(x)
stattlen(l)
?x
undl
Unsinn. Aber Sie können immer noch tun.5
, um ein Byte zu speichern.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
Erläuterung
Ergebnis
quelle
Fortran, 138 Bytes
Nur eine einfache Implementierung der Gleichung in Fortran:
quelle
SmileBASIC, 105 Bytes (als Funktion)
Mir ist gerade aufgefallen, dass es eine Funktion sein darf. Hoppla, das reduziert meine Antwort dramatisch. Dies definiert eine Funktion,
S
die ein Array annimmt und die Populationsstandardabweichung zurückgibt. Lesen Sie den anderen Abschnitt, um eine Erklärung zu erhalten, überspringen Sie jedoch den Analyseteil. Ich will es nicht noch einmal machen.Als Programm 212 Bytes
Leider muss ich die Eingabeliste als String nehmen und selbst analysieren. Dies fügt der Antwort mehr als 100 Bytes hinzu. Wenn also ein anderes Eingabeformat als eine durch Kommas getrennte Liste zulässig ist, würde ich mich freuen, es zu hören. Beachten Sie auch
VAL
, dass ein Fehler, ein Leerzeichen vor dem Komma oder ein nachgestelltes Zeichen das Programm unterbricht. Nach dem Komma oder am Anfang der Zeichenfolge ist in Ordnung.Ungolfed und erklärte:
quelle
Axiom 137 Bytes
Die Funktion m () würde den Mittelwert der Liste in der Eingabe zurückgeben. Beide Fehlerfunktionen geben% i die imaginäre Konstante sqrt (-1) zurück. Code für Test und Ergebnisse. [aber das Ergebnis, wenn es in Ordnung ist, ist es der Realteil einer komplexen Zahl]
quelle
Python 3 , 49 Bytes
Probieren Sie es online!
Nimmt
l
eine Liste von Ganzzahlen undN
die Anzahl der vorhandenen Ganzzahlen auf.quelle
Pyt , 13 Bytes
Implementiert die Formel für die Standardabweichung
quelle