Il y a pas mal de moyens en mathématiques, comme la moyenne arithmétique, la moyenne géométrique, et bien d'autres ...
Définitions et tâche
Notez que ce sont les définitions de deux entiers positifs *:
La racine carrée moyenne est la racine carrée de la somme de leurs carrés divisée par deux ( ).
La moyenne arithmétique est leur somme, divisée par deux ( ).
La moyenne géométrique est la racine carrée de leur produit ( ).
La moyenne harmonique est 2 divisée par la somme de leurs inverses ( = ).
Étant donné deux entiers a et b tels que a, b ∈ [1, + ∞) , additionnez les moyennes mentionnées ci-dessus de a et b . Vos réponses doivent être précises à au moins 3 décimales, mais vous n'avez pas à vous soucier des erreurs d'arrondi ou de précision à virgule flottante.
Cas de test
a, b -> Sortie 7, 6 -> 25,961481565148972 10, 10 -> 40 23, 1 -> 34.99131878607909 2, 4 -> 11,657371451581236 345, 192 -> 1051.7606599443843
Vous pouvez voir les résultats corrects pour plus de cas de test en utilisant ce programme . C'est le code-golf , donc les soumissions valides les plus courtes qui suivent les règles standard l'emportent.
* Il existe de nombreux autres moyens, mais pour les besoins de ce défi, nous utiliserons ceux mentionnés dans la section "Définitions".
la source
Réponses:
Haskell , 48 octets
Essayez-le en ligne!
Cela utilise le fait que les moyennes quadratiques , arithmétiques, harmoniques et géométriques sont toutes des cas particuliers de la moyenne généralisée
((a**p+b**p)/2)**(1/p)
dep=2,1,-1,0
. La moyenne géométrique utilise la limitep->0+
, approximée commep=1e-9
suffisante pour la précision.la source
Mathematica , 37 octets
-2 octets grâce à Martin Ender. -6 octets grâce à Jenny_mathy et réutilisabilité de la fonction grâce à JungHwan Min.
Essayez-le en ligne!
Mathematica , 55 octets
Essayez-le en ligne!
¯ \ _ (ツ) _ / ¯
la source
((#^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&
. Juste pour faciliter la réutilisation de la fonction (sans avoir à l'exécuterClear@t
avant chaque itération).Python 3 , 57 octets
Essayez-le en ligne!
la source
<<1
va tronquer de manière incorrecte à un nombre entier lorsquea
etb
sont parités opposées.>>1
./2
extérieur que cela compense. Joli tour.R , 52 octets
Essayez-le en ligne!
la source
Haskell , 48 octets
Essayez-le en ligne!
Explication:
s/2 = (a+b)/2
: La moyenne arithmétique.sqrt(s^2/2-p) = sqrt((a^2+2*a*b+b^2)/2-a*b) = sqrt((a^2+b^2)/2)
: Le carré de la racine moyenne.sqrt p = sqrt(a*b)
. La moyenne géométrique.2*p/s = 2*a*b/(a+b)
. La moyenne harmonique.la source
Octave ,
444241 octetsEssayez-le en ligne!
Notez que TIO n'a pas le paquet de signaux installé, j'ai donc défini
rms()
dans l'en-tête. Sur Octave Online , vous pouvez l'essayer si vouspkg load nan
. Je ne sais pas s'il existe des interprètes en ligne qui le chargent par défaut, mais la plupart des systèmes auraient ce package chargé par défaut.Merci à Tom Carpenter d'avoir repéré une petite erreur de 2 octets.
Ceci définit une fonction anonyme, prenant l'entrée comme un vecteur
n=[a,b]
. Nous utilisons ensuite l'affectation en ligne pour réduire le calcul du HM à justez/q
.la source
f=
dans le code, ce qui en fait 42 octets. (ce qui conduit bien sûr au "44 barré ressemble à 44") - Essayez-le en ligne!^.5
enregistre un octet de plussqrt
. En outre, supprimezf=
de la partie de code dans le lienGelée , 17 octets
Essayez-le en ligne!
la source
PḤ÷S,µ³²Æm,P½,µÆmFS
(19 octets) - Je pense que cela mérite d'être mentionné, c'est peut-être une source d'inspiration. EDIT: > _> Je me rends compte maintenant que je peux simplement utiliser+
au lieu de,
½
regrouper les sujets , et cela a sauvé un octet.PḤ÷S
possible : peut être remplacée par:İSHİ
05AB1E ,
1816 octets-2 octets grâce à Erik l'Outgolfer
Explication:
Essayez-le en ligne!
la source
nO;t¹O;¹Pt2¹zO/O
[a, b]
.Husk , 19 octets
Essayez-le en ligne!
-1 merci à H.PWiz .
la source
ö√½Σm□
peut êtreȯ√½ṁ□
MATL ,
211817 octetsEssayez-le en ligne!
-3 octets grâce à Luis Mendo.
Explication
la source
Ohm v2 , 16 octets
Essayez-le en ligne!
Explication
... si Ohm avait une sorte de mode verbeux. : P
la source
TI-Basic (TI-84 Plus CE),
2725 octets-2 octets de Scrooble
Prend une liste de deux nombres
Ans
et renvoie implicitement la somme des quatre moyennes; par exemple courir avec{7,6}:prgmNAME
pour obtenir25.96148157
.Explication:
√(sum(Ans2)/2)
: 8 octets: racine quadratique moyennemean(Ans)
:53 octets: moyenne arithmétique (ancien:sum(Ans)/2
)2prod(Ans)/sum(Ans)
: 8 octets: moyenne harmonique√(prod(Ans
: 3 octets: moyenne géométrique+3 octets pour 3
+
esla source
sum(Ans)/2)
.mean(
intégrée.SOGL V0.12 , 22 octets
Essayez-le ici!
la source
Dyalog APL , 44 octets
Essayez-le en ligne!
Dfns dyadiques avec
a
à gauche etb
à droite.la source
JavaScript, 47 octets
assez banal
Afficher l'extrait de code
la source
Java 8, 63 octets
Prend les deux paramètres comme
Double
et les sorties commeDouble
.Essayez-le ici.
Ou (également 63 octets ):
Prend les deux paramètres comme
Integer
et les sorties commeDouble
.Essayez-le ici.
la source
Python 2 , 58 octets
Essayez-le en ligne!
Prend l'entrée sous forme de flotteurs
la source
ARBLE ,
4945 octets-4 octets grâce à M. Xcoder
Essayez-le en ligne!
la source
En fait , 15 octets
Essayez-le en ligne!
Yay a en fait une fonction intégrée pour Root Square Mean!
la source
Julia ,
4947 octetsEssayez-le en ligne!
la source
Groovy, 54 octets
-2 merci à M. Xcoder pour un montage qui m'a fait me sentir stupide.
la source
a**2
para*a
etb**2
parb*b
C # (.NET Core) , 76 octets
+13 octets pour
using System;
Essayez-le en ligne!
la source
using System;
supprimant les deuxSystem.
. PS: Si vous voulez un moyen moins ennuyeux (avec le même nombre d'octets exact 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 octets
Étendu
Essayez-le en ligne!
la source