도전
숫자 목록이 주어지면 목록의 모집단 표준 편차를 계산하십시오.
모집단 표준 편차를 계산하려면 다음 방정식을 사용하십시오.
입력
입력은 모든 형식 (목록, 문자열 등)으로 된 정수 목록입니다. 몇 가지 예 :
56,54,89,87
67,54,86,67
숫자는 항상 정수입니다.
STDIN 또는 함수 인수가 입력됩니다.
산출
출력은 부동 소수점 숫자 여야합니다.
규칙
내장 함수를 사용하여 표준 편차를 찾을 수 있습니다.
귀하의 답변은 전체 프로그램 또는 기능 일 수 있습니다.
예
10035, 436844, 42463, 44774 => 175656.78441352615
45,67,32,98,11,3 => 32.530327730015607
1,1,1,1,1,1 => 0.0
승리
가장 짧은 프로그램이나 기능이 승리합니다.
리더 보드
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>
답변
답변
수학, 24 22 바이트
Mathematica에는 StandardDevi...
모집단 표준 편차가 아닌 표본 표준 편차를 계산 하는 내장 오 …가 있습니다.
그러나 만약 우리가 Variance
… 오 … 같은 거래를 사용한다면 어떨까요?
그러나 또 다른 관련 내장 기능이 있습니다.
CentralMoment[#,2]^.5&
예 🙂
이것은 22 바이트에서도 작동합니다.
Mean[(#-Mean@#)^2]^.5&
그리고 이것은 27입니다.
N@RootMeanSquare[#-Mean@#]&
답변
답변
kdb + , 3 바이트
dev
APL 편차 중 하나 는 이것을 내장형 으로 가져야했습니다.
시운전
q)dev 56, 54, 89, 87
16.53028
q)f:dev
q)f 10035, 436844, 42463, 44774
175656.8
q)f 45,67,32,98,11,3
32.53033
답변
Dyalog APL, 24 23 21 20 19 17 바이트
*∘.5∘M×⍨-M×M←+/÷≢
이것은 명명되지 않은 monadic 기능 트레인을 정의하며, 이는 다음 기능과 동일합니다.
{.5*⍨M(×⍨⍵)-M⍵×(M←{(+/⍵)÷≢⍵})⍵}
온라인에서 사용해보십시오 TryAPL에서 .
작동 원리
코드는 여러 열차로 구성됩니다.
M←+/÷≢
이것은 올바른 인수에 대해 ( 모든 요소의 합) 및 (길이)를 M
실행 한 다음 결과에 적용 (분할)하여 입력의 산술 평균을 반환 하는 모나 딕 3 트레인 (포크) 을 정의합니다 .+/
≢
÷
M×M
이것은 M
올바른 인수에 적용 되고 두 번째로 반복 ×
되며 결과에 (제품)을 적용 하여 μ 2를 반환 하는 또 다른 포크입니다 .
×⍨-(M×M)
이것은 이전에 설명한 산술 평균의 제곱을 계산 ×⍨
하고 올바른 인수에 (자체가있는 제품) 적용하고 마지막으로 적용되는 또 다른 포크입니다.-
하고 결과에 (차이) .
입력 (x 1 ,…, x N ) 의 경우이 함수는 (x 1 -μ 2 ,…, x N -μ 2 )를 반환합니다 .
*∘.5∘M
이 작성된 함수는 M
올바른 인수에 적용됩니다 *∘.5
. 후자는 올바른 인수 카레를 사용하여지도 입력 a
을 a*0.5
(square root of a
)에 적용합니다.
(*∘.5∘M)(×⍨-(M×M))
마지막으로,이 모나 딕 2 트레인 (위)은 오른쪽 기능을 먼저 적용한 다음 왼쪽을 결과에 적용하여 다음과 같이 표준 편차를 계산합니다.
답변
R, 41 40 39 36 30 28 바이트
암호
덕분에 비커 , 알렉스 A. 및 MickyT 많은 바이트.
cat(sd(c(v=scan(),mean(v))))
오래된 코드
v=scan();n=length(v);sd(v)/(n/(n-1))**0.5
m=scan();cat(sqrt(sum(mean((m-mean(m))^2))))
m=scan();cat(mean((m-mean(m))^2)^.5)
이는 모집단 표준 편차를 산출해야합니다.
답변
Pyth, 20 19 17 13 바이트
@.O^R2-R.OQQ2
4 바이트를 골라 낸 @FryAmTheEggman에게 감사합니다!
작동 원리
.OQ Compute the arithmetic mean of the input (Q).
-R Q Subtract the arithmetic mean of all elements of Q.
^R2 Square each resulting difference.
.O Compute the arithmetic mean of the squared differences.
@ 2 Apply square root.