Hay bastantes medios en matemáticas, como la media aritmética, la media geométrica y muchos otros ...
Definiciones y Tarea
Tenga en cuenta que estas son las definiciones para dos enteros positivos *:
La raíz cuadrada media es la raíz cuadrada de la suma de sus cuadrados divididos por la mitad (
).
La media aritmética es su suma, reducida a la mitad (
).
La media geométrica es la raíz cuadrada de su producto (
).
La media armónica es 2 dividida por la suma de sus inversos (
=
).
Dados dos enteros a y b tales que a, b ∈ [1, + ∞) , suma las medias mencionadas anteriormente de a y b . Sus respuestas deben tener una precisión de al menos 3 decimales, pero no tiene que preocuparse por los errores de precisión de redondeo o coma flotante.
Casos de prueba
a, b -> Salida 7, 6 -> 25.961481565148972 10, 10 -> 40 23, 1 -> 34.99131878607909 2, 4 -> 11.657371451581236 345, 192 -> 1051.7606599443843
Puede ver los resultados correctos para más casos de prueba usando este programa . Este es el código de golf , por lo que gana las presentaciones válidas más cortas que siguen las reglas estándar.
* Hay muchos otros medios, pero para los propósitos de este desafío usaremos los mencionados en la sección "Definiciones".
fuente

Respuestas:
Haskell , 48 bytes
Pruébalo en línea!
Esto utiliza el hecho de que los medios raíz cuadrada, aritmética, armónica y geométrica son todos casos especiales de la media generalizada
((a**p+b**p)/2)**(1/p)parap=2,1,-1,0. La media geométrica usa el límitep->0+, aproximado como elp=1e-9que es suficiente para la precisión.fuente
Mathematica , 37 bytes
-2 bytes gracias a Martin Ender. -6 bytes gracias a Jenny_mathy y la reutilización de funciones gracias a JungHwan Min.
Pruébalo en línea!
Mathematica , 55 bytes
Pruébalo en línea!
¯ \ _ (ツ) _ / ¯
fuente
((#^2+#2^2)/2)^.5+(#+#2)/2+(#1#2)^.5+2#*#2/(#+#2)&((#^2+#2^2)/2)^.5+(+##)/2+(1##)^.5+2/(1/#+1/#2)&(((s=+##)^2-2##)/2)^.5+s/2+(1##)^.5+2##/s&(2(s=+##/2)^2-t)^.5+s+(t=1##)^.5+t/s&(t=1##)^.5+(2(s=+##/2)^2-t)^.5+s+t/s&. Solo para que sea más fácil reutilizar la función (sin tener que ejecutarlaClear@tantes de cada iteración).Python 3 , 57 bytes
Pruébalo en línea!
fuente
<<1va a truncarse incorrectamente a un entero cuandoaybson paridades opuestas.>>1./2exterior que esto compensa. Buen truco.R , 52 bytes
Pruébalo en línea!
fuente
Haskell , 48 bytes
Pruébalo en línea!
Explicación:
s/2 = (a+b)/2: La media aritmética.sqrt(s^2/2-p) = sqrt((a^2+2*a*b+b^2)/2-a*b) = sqrt((a^2+b^2)/2): El cuadrado medio raíz.sqrt p = sqrt(a*b). La media geométrica.2*p/s = 2*a*b/(a+b). La media armónica.fuente
Octava ,
444241 bytesPruébalo en línea!
Tenga en cuenta que TIO no tiene instalado el paquete de señal, así que lo definí
rms()en el encabezado. En Octave Online , puedes probarlo si lo hacespkg load nan. No estoy seguro de si hay algún intérprete en línea que lo cargue de forma predeterminada, pero la mayoría de los sistemas tendrían este paquete cargado de forma predeterminada.Gracias a Tom Carpenter por detectar un pequeño error de 2 bytes.
Esto define una función anónima, tomando la entrada como un vector
n=[a,b]. Luego usamos la asignación en línea para reducir el cálculo de la HM a soloz/q.fuente
f=en el código, por lo que tiene 42 bytes. (lo que, por supuesto, lleva al "44 tachado parece 44") - ¡ Pruébelo en línea!^.5guarda un byte encimasqrt. Además, eliminef=de la parte del código en el enlaceJalea , 17 bytes
Pruébalo en línea!
fuente
PḤ÷S,µ³²Æm,P½,µÆmFS(19 bytes): aunque vale la pena mencionarlo, tal vez sea una fuente de inspiración. EDITAR: > _> Ahora me doy cuenta de que puedo usar en+lugar de,½, y guardó un byte.PḤ÷Spuede ser reemplazado por:İSHİ05AB1E ,
1816 bytes-2 bytes gracias a Erik the Outgolfer
Explicación:
Pruébalo en línea!
fuente
nO;t¹O;¹Pt2¹zO/O[a, b].Casco , 19 bytes
Pruébalo en línea!
-1 gracias a H.PWiz .
fuente
ö√½Σm□puede serȯ√½ṁ□MATL ,
211817 bytesPruébalo en línea!
-3 bytes gracias a Luis Mendo.
Explicación
fuente
Ohm v2 , 16 bytes
Pruébalo en línea!
Explicación
... si Ohm tuviera una especie de modo detallado. :PAG
fuente
TI-Basic (TI-84 Plus CE),
2725 bytes-2 bytes de Scrooble
Toma una lista de dos números
Anse implícitamente devuelve la suma de los cuatro medios; por ejemplo, correr con{7,6}:prgmNAMEget25.96148157.Explicación:
√(sum(Ans2)/2): 8 bytes: raíz cuadrada mediamean(Ans):53 bytes: media aritmética (edad:sum(Ans)/2)2prod(Ans)/sum(Ans): 8 bytes: media armónica√(prod(Ans: 3 bytes: media geométrica+3 bytes por 3
+esfuente
sum(Ans)/2).mean(incorporado.SOGL V0.12 , 22 bytes
Pruébalo aquí!
fuente
Dyalog APL , 44 bytes
Pruébalo en línea!
Dyadic dfns con
aa la izquierda yba la derecha.fuente
JavaScript, 47 bytes
bastante trivial
Mostrar fragmento de código
fuente
Java 8, 63 bytes
Toma ambos parámetros como
Doubley emite comoDouble.Pruébalo aquí.
O (también 63 bytes ):
Toma ambos parámetros como
Integery emite comoDouble.Pruébalo aquí.
fuente
Python 2 , 58 bytes
Pruébalo en línea!
Toma entrada como flotadores
fuente
ARBLE ,
4945 bytes-4 bytes gracias al Sr. Xcoder
Pruébalo en línea!
fuente
En realidad , 15 bytes
Pruébalo en línea!
¡Yay en realidad tiene incorporado Root Square Mean!
æßπ√ + ßΣßπτ / + ßµ + ~ Programa completo. æ ~ Media aritmética. ßπ√ ~ Producto, raíz cuadrada (calcula la media geométrica). + ~ Suma. ßΣ ~ Presione la suma de la entrada. ßπτ ~ Empuje el producto de la entrada duplicado. / ~ Divide. + ~ Suma. ßµ ~ Media cuadrática de la raíz de empuje. + ~ Suma.fuente
Julia ,
4947 bytesPruébalo en línea!
fuente
Groovy, 54 bytes
-2 gracias al Sr. Xcoder por una edición que me hizo sentir tonto.
fuente
a**2cona*ayb**2conb*bC # (.NET Core) , 76 bytes
+13 bytes para
using System;Pruébalo en línea!
fuente
using System;quitando ambosSystem.. PD: Si quieres una manera menos aburrida (con exactamente el mismo byte recuento de 76):using System;a=>b=>(a+b+Math.Sqrt(a*a+b*b<<1))/2+Math.Sqrt(a*b)+2d*a*b/(a+b). ;)Jq 1.5 , 76 bytes
Expandido
Pruébalo en línea!
fuente