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>
Odpowiedzi:
Klip , 3
.s
jest odchyleniem standardowym,k
analizuje dane wejściowe w formularzu{1,2,3}
.źródło
Mathematica,
2422 bajtówFajnie, Mathematica ma wbudowane
StandardDevi...
... och, które oblicza odchylenie standardowe próbki, a nie odchylenie standardowe populacji.Ale co, jeśli użyjemy
Variance
... och ... tej samej umowy.Ale jest jeszcze jedno powiązane wbudowane:
Tak :)
Działa to również dla 22 bajtów:
A to dla 27:
źródło
Oktawa, 14 bajtów
Wypróbuj na ideone .
źródło
g=
ponieważ uchwyt funkcji nie potrzebuje nazwy, aby być poprawnym przesyłaniem.kdb + , 3 bajty
Jeden z derwiatów APL musiał mieć to jako wbudowane.
Testowe uruchomienie
źródło
Dyalog APL,
242321201917 bajtówDefiniuje nienazwany, monadyczny ciąg funkcji, który jest równoważny z następującą funkcją.
Wypróbuj je online na TryAPL .
Jak to działa
Kod składa się z kilku pociągów.
Definiuje monadyczny 3-pociąg (rozwidlenie),
M
który wykonuje+/
(sumę wszystkich elementów) i≢
(długość) dla właściwego argumentu, a następnie stosuje÷
(dzielenie) do wyników, zwracając średnią arytmetyczną danych wejściowych.Jest to kolejny rozwidlenie, które stosuje
M
się do właściwego argumentu, powtarza to po raz drugi i stosuje×
(produkt) do wyników, zwracając μ 2 .Jest to kolejny rozwidlenie, które oblicza kwadrat średniej arytmetycznej, jak wyjaśniono wcześniej, stosuje
×⍨
(produkt sam w sobie) do właściwego argumentu i ostatecznie stosuje-
(różnicę) do wyników.Dla danych wejściowych (x 1 ,…, x N ) funkcja zwraca (x 1 - μ 2 ,…, x N - μ 2 ) .
Ta skomponowana funkcja ma
M
zatem zastosowanie do jej właściwego argumentu*∘.5
. Ten drugi używa poprawnego argumentu curry do zastosowania danych wejściowycha
na mapiea*0.5
(pierwiastek kwadratowy za
).Wreszcie mamy ten monadyczny 2-ciąg (na szczycie), który najpierw stosuje prawą funkcję, a następnie lewą do wyniku, obliczając odchylenie standardowe w następujący sposób.
źródło
R,
414039363028 bajtówkod
Dzięki zlewce , Alexowi A. i MickyT za wiele bajtów.
stare kody
Powinno to dać odchylenie standardowe populacji.
źródło
cat
do drukowania na konsoli.^
do potęgowania, który jest bajtem krótszym niż**
.mean
zwraca skalar;sum
nie ma wpływu. 36 bajtów:x=scan();cat(mean((x-mean(x))^2)^.5)
Pyth,
20191713 bajtówDzięki @FryAmTheEggman za grę w golfa na 4 bajtach!
Wypróbuj online.
Jak to działa
źródło
CJam,
242221 bajtówDzięki @aditsu za grę w golfa z 1 bajtu!
Wypróbuj online w interpretatorze CJam .
Jak to działa
źródło
:mh
jest geniuszem btw :)Reduce by hypotenuse.
nie jest czymś, co widzisz każdego dnia.APL, 24 bajty
Trochę inne podejście niż rozwiązanie Dennis Dyalog APL . Powinno to działać z dowolną implementacją APL.
To tworzy nienazwaną funkcję monadyczną, która oblicza wektor ( x - µ ) 2, ponieważ
2*⍨⍵-+/⍵÷≢⍵
dzieli go przez N (÷≢⍵
), pobiera sumę tego wektora za pomocą+/
, a następnie przyjmuje pierwiastek kwadratowy (.5*⍨
).Wypróbuj online
źródło
{
dfns}
,⍨
lub≢
. Jednak każda wersja obsługujeR←F Y
R←(+/((Y-+/Y÷⍴Y)*2)÷⍴Y)*.5
Julia,
2619 bajtówTworzy to nienazwaną funkcję, która akceptuje tablicę i zwraca liczbę zmiennoprzecinkową.
Przypuszczam, że:
źródło
TI-BASIC, 7 bajtów
Pożyczyłem algorytm, aby uzyskać odchylenie standardowe populacji z próbki odchylenia standardowego od tutaj .
Najkrótsze rozwiązanie bez którego mogę znaleźć
augment(
to 9 bajtów:źródło
stdDev(
oblicza próbkę SD;stdDev(augment(Ans,{mean(Ans
oblicza SD populacji. To jest strona, do której linkujesz.Haskell, 61 bajtów
Prosto, z wyjątkiem mojej funkcji niestandardowej długości,
sum(n>>[1])
która może oszukać system ścisłego pisania Haskella.źródło
sum(1<$n)
i<$>
dlamap
.Python 3.4+, 30 bajtów
Importuje wbudowaną funkcję
pstdev
, npźródło
pstdev
po pierwszej linii jest w porządku? Myślę, że Xnor zrobił to jakiś czas temusum
. W pewnym sensie ma to sens, jak anonimowe lambd byłyby używane, tj.p=pstdev
Lubmap(pstdev, [...])
pstdev
chociaż, jakfrom statistics import*;pstdev
. W przeciwnym razie może to być dowolna funkcja z tej biblioteki.JavaScript (ES6), 73 bajty
źródło
eval(a.join`+`)
zamiasta.reduce((e,f)=>e+f)
Galareta , niekonkurująca
11 bajtów Ta odpowiedź jest niekonkurencyjna, ponieważ używa języka, który stanowi datę późniejszą wyzwania.
To jest bezpośrednie tłumaczenie mojej odpowiedzi APL na galaretkę. Wypróbuj online!
Jak to działa
źródło
J, 18 bajtów
To jest bezpośrednie tłumaczenie mojej odpowiedzi APL na J.
Wypróbuj online!
źródło
M
jest to predefiniowany wbudowany.M=:+/%#
jest definicją funkcji wbudowanej.M=:+/%#
oszczędza czasownika+/%#
wM
, a następnie wywołuje go.Simplex v.0.5 , 43 bajty
Po prostu. Naprawdę muszę zagrać w ten jeszcze jeden bajt.
źródło
Prolog (SWI), 119 bajtów
Kod:
Wyjaśnienie:
Przykład:
Wypróbuj online tutaj
źródło
Perl5,
393816 dla skryptu
+22 dla
M
przełącznika+ 1 dla
E
przełącznika= 39
Testowane w Strawberry 5.20.2.
Och, ale potem zdałem sobie sprawę, że powiedziałeś, że nasze odpowiedzi mogą być funkcjami zamiast programami. W tym wypadku,
ma tylko 38. Testowano w Strawberry 5.20.2 as
źródło
Python, 57 bajtów
Pobiera dane wejściowe jako listę
Dzięki @xnor
źródło
.5
zamiast0.5
zaoszczędzić bajt. Czy masz na myślilen(x)
zamiastlen(l)
?x
il
bzdury. Ale nadal możesz zrobić,.5
aby zapisać bajt.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
wyjaśnienie
wynik
źródło
Fortran, 138 bajtów
Prosta implementacja równania w Fortranie:
źródło
SmileBASIC, 105 bajtów (jako funkcja)
Właśnie zauważyłem, że może to być funkcja. Ups, to dramatycznie ogranicza moją odpowiedź. Definiuje funkcję,
S
która pobiera tablicę i zwraca odchylenie standardowe populacji. Przeczytaj wyjaśnienie drugiego, ale pomiń część dotyczącą analizy. Nie chcę tego więcej robić.Jako program 212 bajtów
Niestety muszę wziąć listę wejściową jako ciąg i sam ją przeanalizować. Dodaje to do odpowiedzi ponad 100 bajtów, więc jeśli dozwolony jest jakiś format wejściowy inny niż lista oddzielona przecinkami, chętnie go usłyszę. Zauważ też, że ponieważ
VAL
jest błędny, spacja przed przecinkiem lub przeciąganie łańcucha przerywa program. Po przecinku lub na początku łańcucha jest w porządku.Nie golfił i wyjaśnił:
źródło
Aksjomat, 137 bajtów
Funkcja m () zwróciłaby średnią z listy na wejściu. Obie funkcje po błędzie zwracają% i urojoną stałą sqrt (-1). Kod testu i wyników. [ale wynik, jeśli jest w porządku, jest to prawdziwa część jednej liczby zespolonej]
źródło
Python 3 , 49 bajtów
Wypróbuj online!
Pobiera
l
listę liczb całkowitych iN
liczbę obecnych liczb całkowitych.źródło
Pyt , 13 bajtów
Implementuje formułę odchylenia standardowego
źródło