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>
Respuestas:
Clip , 3
.s
es la desviación estándar,k
analiza la entrada en el formulario{1,2,3}
.fuente
Mathematica,
2422 bytesAgradable, Mathematica tiene un
StandardDevi...
oh incorporado ... que calcula la desviación estándar de la muestra, no la desviación estándar de la población.Pero y si usamos
Variance
... oh ... mismo trato.Pero hay otra función integrada relacionada:
Hurra. :)
Esto también funciona para 22 bytes:
Y esto por 27:
fuente
Octava, 14 bytes
Pruébalo con ideone .
fuente
g=
ya que el identificador de función no necesita un nombre para ser un envío válido.kdb + , 3 bytes
Uno de los derivados de APL tenía que tener esto como incorporado.
Prueba de funcionamiento
fuente
Dyalog APL,
242321201917 bytesEsto define un tren de funciones monádicas sin nombre, que es equivalente a la siguiente función.
Pruébelos en línea en TryAPL .
Cómo funciona
El código consta de varios trenes.
Esto define un tren monádico de 3 (horquilla)
M
que ejecuta+/
(suma de todos los elementos) y≢
(longitud) para el argumento correcto, luego aplica÷
(división) a los resultados, devolviendo la media aritmética de la entrada.Esta es otra bifurcación que se aplica
M
al argumento correcto, repite esto por segunda vez y aplica×
(producto) a los resultados, devolviendo μ 2 .Esta es otra bifurcación que calcula el cuadrado de la media aritmética como se explicó anteriormente, aplica
×⍨
(producto consigo mismo) al argumento correcto y finalmente aplica-
(diferencia) a los resultados.Para la entrada (x 1 , ..., x N ) , esta función devuelve (x 1 - μ 2 , ..., x N - μ 2 ) .
Esta función compuesta se aplica
M
a su argumento correcto, entonces*∘.5
. Este último utiliza el argumento correcto curry para aplicar la entrada del mapaa
aa*0.5
(raíz cuadrada dea
).Finalmente, tenemos este 2-tren monádico (arriba), que aplica primero la función derecha, luego la izquierda a su resultado, calculando la desviación estándar de la siguiente manera.
fuente
R,
414039363028 bytescódigo
Gracias a Beaker , Alex A. y MickyT por muchos bytes.
códigos antiguos
Esto debería producir la desviación estándar de la población.
fuente
cat
para imprimir en la consola.^
para exponenciación, que es un byte más corto que**
.mean
devuelve un escalar;sum
no tiene efecto. 36 bytes:x=scan();cat(mean((x-mean(x))^2)^.5)
Pyth,
20191713 bytes¡Gracias a @FryAmTheEggman por jugar golf en 4 bytes!
Pruébalo en línea.
Cómo funciona
fuente
CJam,
242221 bytes¡Gracias a @aditsu por jugar golf en 1 byte!
Pruébelo en línea en el intérprete de CJam .
Cómo funciona
fuente
:mh
es genial por cierto :)Reduce by hypotenuse.
No es algo que ves todos los días.APL, 24 bytes
Un enfoque un poco diferente al de la solución Dyalog APL de Dennis . Esto debería funcionar con cualquier implementación de APL.
Esto crea una función monádica sin nombre que calcula el vector ( x - µ ) 2 ya que
2*⍨⍵-+/⍵÷≢⍵
, divide esto por N (÷≢⍵
), toma la suma de este vector usando+/
, y luego toma la raíz cuadrada (.5*⍨
).Pruébalo en línea
fuente
{
dfns}
,⍨
o≢
. Sin embargo, todas las versiones son compatiblesR←F Y
R←(+/((Y-+/Y÷⍴Y)*2)÷⍴Y)*.5
Julia,
2619 bytesEsto crea una función sin nombre que acepta una matriz y devuelve un flotante.
Sin golf, supongo:
fuente
TI-BASIC, 7 bytes
Tomé prestado el algoritmo para obtener la desviación estándar de la población de la desviación estándar de la muestra desde aquí .
La solución más corta que pude encontrar sin
augment(
es de 9 bytes:fuente
stdDev(
calcula la muestra SD;stdDev(augment(Ans,{mean(Ans
calcula la población SD. Eso está en la página a la que te vinculaste.Haskell, 61 bytes
Directo, excepto tal vez mi función de longitud personalizada
sum(n>>[1])
para engañar al estricto sistema de tipos de Haskell.fuente
sum(1<$n)
y<$>
paramap
.Python 3.4+, 30 bytes
Importa la función integrada
pstdev
, p. Ej.fuente
pstdev
después de la primera línea está bien? Creo que xnor hizo eso hace un tiempo consum
. Tiene sentido wrt cómo se usarían lambdas anónimas, es decir,p=pstdev
omap(pstdev, [...])
pstdev
embargo, creo que todavía necesitas escribir el literal , comofrom statistics import*;pstdev
. De lo contrario, esta podría ser cualquier función de esa biblioteca.JavaScript (ES6), 73 bytes
fuente
eval(a.join`+`)
lugar dea.reduce((e,f)=>e+f)
Gelatina , no competidora
11 bytes Esta respuesta no es competitiva, ya que utiliza un lenguaje posterior al desafío.
Esta es una traducción directa de mi respuesta APL a Jelly. Pruébalo en línea!
Cómo funciona
fuente
J, 18 bytes
Esta es una traducción directa de mi respuesta APL a J.
Pruébalo en línea!
fuente
M
había un predefinido incorporado.M=:+/%#
es una definición de función en línea.M=:+/%#
guarda el verbo+/%#
enM
, luego lo llama.Simplex v.0.5 , 43 bytes
Solo porque. Realmente necesito jugar golf este byte más.
fuente
Prólogo (SWI), 119 bytes
Código:
Explicación:
Ejemplo:
Pruébelo en línea aquí
fuente
Perl5,
393816 para el script
+22 para el
M
switch+ 1 para el
E
switch= 39
Probado en fresa 5.20.2.
Ah, pero luego me di cuenta de que dijiste que nuestras respuestas pueden ser funciones en lugar de programas. En ese caso,
solo tiene 38. Probado en Strawberry 5.20.2 como
fuente
Python, 57 bytes
Toma la entrada como una lista
Gracias @xnor
fuente
.5
en lugar de0.5
guardar un byte. ¿También quieres decir enlen(x)
lugar delen(l)
?x
yl
sin sentido. Pero aún puede hacer.5
para guardar un 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
explicación
resultado
fuente
Fortran, 138 bytes
Solo una implementación directa de la ecuación en Fortran:
fuente
SmileBASIC, 105 bytes (como función)
Acabo de notar que está permitido que sea una función. Vaya, eso reduce mi respuesta dramáticamente. Esto define una función
S
que toma una matriz y devuelve la desviación estándar de la población. Ve a leer el otro para obtener una explicación, pero omite la parte de análisis. No quiero volver a hacerlo.Como programa, 212 bytes
Desafortunadamente, tengo que tomar la lista de entrada como una cadena y analizarla yo mismo. Esto agrega más de 100 bytes a la respuesta, por lo que si se permite algún formato de entrada que no sea una lista separada por comas, me encantaría escucharlo. También tenga en cuenta que porque
VAL
tiene errores, tener un espacio antes de la coma o arrastrar la cadena rompe el programa. Después de la coma o al comienzo de la cadena está bien.Ungolfed y explicó:
fuente
Axioma, 137 bytes
La función m () devolvería la media de la lista en la entrada. Ambas funciones en caso de error devuelven% i la constante imaginaria sqrt (-1). Código de prueba y resultados. [pero el resultado si está bien, es la parte real de un número complejo]
fuente
Python 3 , 49 bytes
Pruébalo en línea!
Toma
l
una lista de enteros yN
la cantidad de enteros presentes.fuente
Pyt , 13 bytes
Implementa la fórmula para la desviación estándar.
fuente