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>
Jawaban:
Klip , 3
.s
adalah standar deviasi,k
mem-parsing input dalam bentuk{1,2,3}
.sumber
Mathematica,
2422 byteBagus, Mathematica memiliki built-in
StandardDevi...
oh ... yang menghitung standar deviasi sampel, bukan standar deviasi populasi.Tetapi bagaimana jika kita menggunakan
Variance
... oh ... kesepakatan yang sama.Tapi ada built-in lain yang terkait:
Yay. :)
Ini juga berfungsi untuk 22 byte:
Dan ini untuk 27:
sumber
Oktaf, 14 byte
Cobalah di ideone .
sumber
g=
karena pegangan fungsi tidak perlu nama untuk menjadi kiriman yang valid.kdb + , 3 byte
Salah satu yang diturunkan APL harus memiliki ini sebagai bawaan .
Uji coba
sumber
Dyalog APL,
242321201917 byteIni mendefinisikan kereta fungsi monadik tanpa nama, yang setara dengan fungsi berikut.
Cobalah secara online di TryAPL .
Bagaimana itu bekerja
Kode ini terdiri dari beberapa kereta.
Ini mendefinisikan 3-kereta monadik (garpu)
M
yang mengeksekusi+/
(jumlah semua elemen) dan≢
(panjang) untuk argumen yang benar, kemudian menerapkan÷
(pembagian) untuk hasilnya, mengembalikan rata-rata aritmatika dari input.Ini adalah garpu lain yang berlaku
M
untuk argumen yang tepat, mengulangi ini untuk kedua kalinya, dan berlaku×
(produk) dengan hasil, kembali μ 2 .Ini adalah garpu lain yang menghitung kuadrat dari rata-rata aritmatika seperti yang dijelaskan sebelumnya, berlaku
×⍨
(produk dengan dirinya sendiri) untuk argumen yang benar, dan akhirnya berlaku-
(perbedaan) untuk hasilnya.Untuk input (x 1 , ..., x N ) , fungsi ini mengembalikan (x 1 - μ 2 , ..., x N - μ 2 ) .
Fungsi tersusun ini berlaku
M
untuk argumen yang benar, lalu*∘.5
. Yang terakhir menggunakan currying argumen kanan untuk menerapkan input petaa
kea*0.5
(akar kuadrat daria
).Akhirnya, kita memiliki kereta 2 monadik (di atas), yang menerapkan fungsi kanan terlebih dahulu, lalu kiri ke hasilnya, menghitung standar deviasi sebagai berikut.
sumber
R,
414039363028 bytekode
Berkat gelas kimia , Alex A. dan MickyT untuk banyak byte.
kode lama
Ini harus menghasilkan deviasi standar populasi.
sumber
cat
untuk mencetak ke konsol.^
untuk eksponensial, yang merupakan byte lebih pendek dari**
.mean
mengembalikan skalar;sum
tidak berpengaruh. 36 byte:x=scan();cat(mean((x-mean(x))^2)^.5)
Pyth,
20191713 byteTerima kasih kepada @FryAmTheEggman untuk bermain golf 4 byte!
Cobalah online.
Bagaimana itu bekerja
sumber
CJam,
242221 byteTerima kasih kepada @aditsu karena bermain golf 1 byte!
Cobalah online di juru bahasa CJam .
Bagaimana itu bekerja
sumber
:mh
is genius btw :)Reduce by hypotenuse.
bukan sesuatu yang Anda lihat setiap hari.APL, 24 byte
Pendekatan yang sedikit berbeda dari solusi APL Dennis 'Dyalog . Ini harus bekerja dengan implementasi APL apa pun.
Ini menciptakan fungsi monadik tanpa nama yang menghitung vektor ( x - μ ) 2 sebagai
2*⍨⍵-+/⍵÷≢⍵
, membaginya dengan N (÷≢⍵
), mengambil jumlah vektor ini menggunakan+/
, dan kemudian mengambil akar kuadrat (.5*⍨
).Cobalah online
sumber
{
dfns}
,⍨
atau≢
. Namun, setiap versi mendukungR←F Y
R←(+/((Y-+/Y÷⍴Y)*2)÷⍴Y)*.5
Julia,
2619 byteIni menciptakan fungsi tanpa nama yang menerima array dan mengembalikan float.
Tidak disatukan, saya kira:
sumber
TI-BASIC, 7 byte
Saya meminjam algoritma untuk mendapatkan simpangan baku populasi dari simpangan baku sampel dari sini .
Solusi terpendek yang dapat saya temukan tanpa
augment(
9 byte:sumber
stdDev(
menghitung sampel SD;stdDev(augment(Ans,{mean(Ans
menghitung populasi SD. Itu ada di halaman yang Anda tautkan.Haskell, 61 byte
Mudah, kecuali mungkin fungsi panjang kustom saya
sum(n>>[1])
untuk menipu sistem tipe ketat Haskell.sumber
sum(1<$n)
dan<$>
untukmap
.Python 3.4+, 30 byte
Mengimpor fungsi bawaan
pstdev
, misalnyasumber
pstdev
setelah baris pertama ok? Saya percaya xnor melakukan itu beberapa waktu yang lalu dengansum
. Ini semacam masuk akal bagaimana lambdas anonim akan digunakan yaitup=pstdev
ataumap(pstdev, [...])
pstdev
, sukafrom statistics import*;pstdev
. Kalau tidak, ini bisa berupa fungsi apa pun dari perpustakaan itu.JavaScript (ES6), 73 byte
sumber
eval(a.join`+`)
alih-aliha.reduce((e,f)=>e+f)
Jelly , tidak bersaing
11 byte Jawaban ini tidak bersaing, karena menggunakan bahasa yang mengatasi tantangan.
Ini adalah terjemahan langsung dari jawaban APL saya ke Jelly. Cobalah online!
Bagaimana itu bekerja
sumber
J, 18 byte
Ini adalah terjemahan langsung dari jawaban APL saya ke J.
Cobalah online!
sumber
M
ituM=:+/%#
adalah definisi fungsi sebaris.M=:+/%#
menghemat kata kerja+/%#
diM
, kemudian menyebutnya.Simplex v.0.5 , 43 byte
Cuz. Saya benar-benar perlu bermain golf satu byte lagi.
sumber
Prolog (SWI), 119 byte
Kode:
Penjelasan:
Contoh:
Cobalah online di sini
sumber
Perl5,
393816 untuk skrip
+22 untuk
M
sakelar+ 1 untuk
E
sakelar= 39
Diuji dalam Strawberry 5.20.2.
Oh, tapi kemudian saya menyadari bahwa Anda mengatakan jawaban kami bisa berfungsi, bukan program. Dalam hal itu,
baru saja 38. Diuji dalam Strawberry 5.20.2 sebagai
sumber
Python, 57 byte
Mengambil input sebagai daftar
Terima kasih @ xnor
sumber
.5
di tempat0.5
untuk menyimpan byte. Maksud Anda,len(x)
bukanlen(l)
?x
danl
omong kosong. Tetapi Anda masih bisa melakukannya.5
untuk menghemat satu 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
penjelasan
hasil
sumber
Fortran, 138 byte
Hanya implementasi langsung dari persamaan di Fortran:
sumber
SmileBASIC, 105 byte (sebagai fungsi)
Saya hanya memperhatikan itu diizinkan menjadi fungsi. Aduh, itu mengurangi jawaban saya secara dramatis. Ini mendefinisikan fungsi
S
yang mengambil array dan mengembalikan deviasi standar populasi. Bacalah yang lain untuk penjelasan, tetapi lewati bagian parsing. Saya tidak ingin melakukannya lagi.Sebagai sebuah program, 212 byte
Sayangnya, saya harus mengambil daftar input sebagai string dan menguraikannya sendiri. Ini menambahkan lebih dari 100 byte jawaban, jadi jika beberapa format input selain daftar yang dipisahkan koma diizinkan, saya akan senang mendengarnya. Perhatikan juga bahwa karena
VAL
buggy, memiliki ruang sebelum koma atau mengekstraksi string akan merusak program. Setelah koma atau di awal string baik-baik saja.Tidak digabungkan dan dijelaskan:
sumber
Aksioma, 137 byte
Fungsi m () akan mengembalikan rata-rata daftar dalam input. Kedua fungsi pada pengembalian kesalahan% i konstanta imajiner konstan (-1). Kode untuk pengujian dan hasil. [Tapi hasilnya jika itu ok, itu adalah bagian nyata dari satu bilangan kompleks]
sumber
Python 3 , 49 byte
Cobalah online!
Diambil
l
, daftar bilangan bulat, danN
, jumlah bilangan bulat yang ada.sumber
Pyt , 13 byte
Menerapkan rumus untuk deviasi standar
sumber