Inspirado por esta pregunta .
Dada una lista que contiene números, imprima:
- La suma y el producto de los números en la lista.
- El promedio y la mediana
- Las diferencias entre cada término en la lista (ex
[1,2,3] -> [1,1]: 1+1=2, 2+1=3
) - La lista, ordenada ascendente
- El mínimo y el máximo de la lista.
- La desviación estándar de la lista.
Para referencia:
Desviación estándar
Donde μ es el promedio medio, x i es el i
término th en la lista y N
es la longitud de la lista.
El código más corto gana. ¡Buena suerte!
code-golf
math
array-manipulation
beary605
fuente
fuente
Respuestas:
Q, 41
fuente
J,
7370 caracteresUso:
fuente
TI-BASIC, 41 bytes
1-Var Stats
es un byte , yΣx
,x̄
, etc, son dos bytes cada uno.Si se permite cambiar el orden de salida, se puede guardar un pareo cerrado, lo que lleva la puntuación a 40 bytes.
fuente
Q (87 caracteres)
p.ej.
fuente
Rubí 187
Sintaxis de uso:
O[<array>]
(por ejemplo,O[[1,2,3]]
)Emite todos los valores requeridos a la consola, en el orden especificado en la pregunta.
Ejemplos de IdeOne:
fuente
Scala
208202188:Prueba:
fuente
Julia 0.6 , 66 bytes
Pruébalo en línea!
Julia 0.6 , 88 bytes (dev estándar sin corregir, como en op)
Pruébalo en línea!
fuente
n-1
) en lugar del estándar de población (dividiendo entren
) como se requiere en el problema. Multiplicar por(n-1)/n
tampoco lo arreglaría, porque cuando se divide porn-1
,NaN
se produce. Me encontré con los mismos problemas al intentar hacer esto en R y no lo he pensado desde entonces.C ++ 14,
340383 bytesComo genérico lambda sin nombre. El primer parámetro
L
es la listastd::list
del tipo de punto flotante y el segundo parámetro es el flujo de salida deseado, comostd::cout
.Compila con una advertencia, C ++ no permite
"
seguidos directamente por literales comoF
. El programa sigue ejecutándose.Sin golf:
fuente
F
a;F(x)O<<x<<'\n';
y la última línea a:[](A L,A&O){A S=L;A l=L.begin(),k=l;A n=L.size();A s=*l,p=s,d=s*s,h=n/2.;for(S.sort(),Y s+=*l,p*=*l,d+=*l**l);for(l=S.begin();--h>0;++l)F(s)F(p)F(s/n)F(*l)for(Y)O<<*l-*k++<<","F(' ')for(A x:S)O<<x<<","F(' ')F(S.front())F(S.back())F(sqrt((d-s*s/n)/(n-1)));}
;
al final. Eso podría eliminarse, pero al compilador no le gusta" "F
:warning: invalid suffix on literal; C++11 requires a space between literal and string macro
aunque compila ...Perl 5 , 204 + 1 = 205 bytes
Pruébalo en línea!
fuente
Pyt , 39 bytes
Esto genera, en orden, la mediana, el producto, las diferencias, la lista invertida, la suma, el máximo y el mínimo, la media y la desviación estándar.
Pruébalo en línea!
Explicación:
fuente
NARS APL, 119 caracteres, 182 bytes
prueba
fuente
Ocaml - 288 bytes
Asumiendo que la lista dada es una lista no vacía de flotantes (para evitar conversiones), y que la mediana devuelta es la definición débil de la mediana:
La versión legible es
fuente
PHP, 213 bytes
Pruébalo en línea .
fuente