introduction
La théorie des nombres regorge de merveilles, sous la forme de connexions inattendues. En voici un.
Deux entiers sont co-prime si elles ne présentent aucun facteur en commun autre que 1. Étant donné un nombre N , considérer tous les entiers de 1 à N . Dessinez deux de ces entiers au hasard (tous les entiers ont la même probabilité d'être sélectionnés à chaque tirage; les tirages sont indépendants et avec remplacement). Soit p la probabilité que les deux entiers sélectionnés soient co-premiers. Alors p tend vers 6 / π 2 ≈ 0,6079 ... comme N tend vers l'infini.
Le défi
Le but de ce défi est de calculer p en fonction de N .
Par exemple, considérons N = 4. Il y a 16 paires possibles obtenues à partir des entiers 1,2,3,4. 11 de ces paires sont co-principales, à savoir (1,1), (1,2), (1,3), (1,4), (2,1), (3,1), (4,1 ), (2,3), (3,2), (3,4), (4,3). Ainsi p est 11/16 = 0,6875 pour N = 4.
La valeur exacte de p doit être calculée avec au moins quatre décimales. Cela implique que le calcul doit être déterministe (par opposition à Monte Carlo). Mais il n'est pas nécessaire que ce soit une énumération directe de toutes les paires comme ci-dessus; n'importe quelle méthode peut être utilisée.
Des arguments de fonction ou stdin / stdout peuvent être utilisés. Si vous affichez la sortie, les zéros de fin peuvent être omis. Ainsi, par exemple, 0.6300
peut être affiché comme 0.63
. Il doit être affiché sous la forme d'un nombre décimal et non sous forme d'une fraction (l'affichage de la chaîne 63/100
n'est pas autorisé).
Le critère de gain est le moins d'octets. Il n'y a aucune restriction sur l'utilisation des fonctions intégrées.
Cas de test
Entrée / sortie (seules quatre décimales sont obligatoires, comme indiqué ci-dessus):
1 / 1.000000000000000
2 / 0.750000000000000
4 / 0.687500000000000
10 / 0.630000000000000
100 / 0.608700000000000
1000 / 0.608383000000000