Estimation de la proportion des océans du globe selon la méthode de Monte Carlo

Comme un morpion malpoli, insultant et débile (dont le message a été supprimé par Yahoo depuis…) ne m’a pas pris au sérieux quand j’avais raconté que l’on peut estimer la proportion de la surface des océans du globe par rapport à la surface totale au moyen d’une méthode statistique, alors je vais prouver que c’est possible dans le présent article.

Description de la méthode :

On pixelise la surface du globe terrestre en un grand nombre de points disposés aléatoirement (ça tombe au hasard soit en mer, soit sur continent). Ensuite on compte le nombre de points situés dans les océans par rapport au nombre total de points.

Cette méthode statistique est connue sous le nom de méthode de Monte Carlo. Cette méthode sert même à déterminer la valeur du nombre π. Hé oui, ça marche avec des méthodes aléatoires. N’en déplaise à certains, hein…

Historiquement, le véritable développement des méthodes de Monte-Carlo s’est effectué sous l’impulsion de John von Neumann et Stanislas Ulam notamment, lors de la Seconde Guerre mondiale et des recherches sur la fabrication de la bombe atomique. À l’époque, il fallait trouver des moyens de calculer plus vite ou de gagner du temps. Cela peut paraître paradoxal, mais les méthodes aléatoires ça marche. Sinon, cela aurait été de la folie de s’en servir inutilement en temps de guerre, n’est-ce pas ?…

J’ai conçu un programme en langage Perl. La latitude géographique est dans l’intervalle -90° et +90°, et la longitude géographique est dans l’intervalle -180° et +180°. Le signe de chaque valeur a 50% de chances d’être négatif et 50% d’être positif.

Voici le code source du programme Perl :

#!/usr/bin/perl

for ($stat = 1; $stat <= 30; $stat++)
{
$boolean1 = rand();
$boolean2 = rand();
$signe1 = 1;
$signe2 = 1;

if ($boolean1 < 0.5)
{
$signe1 = -1;
}
if ($boolean2 < 0.5)
{
$signe2 = -1;
}
$latitude = $signe1 * rand(90);
$longitude = $signe2 * rand(180);
print « $latitude,$longitude \n »;
}

En exécutant le programme, j’obtiens une liste de 30 coordonnées géographiques. Je reporte chacune sur le site de https://maps.google.fr. Et j’examine sur quel endroit ça tombe sur le globe terrestre.

Voici la liste des 30 coordonnées obtenues aléatoirement :

61.1818135145515,174.455953265919 : Mer de Bering
63.1572301987557,130.94970081205 : Russie continentale, près de Yakoutsk
27.1788839660237,109.158485777037 : Chine continentale
-34.2470709784551,-60.8486417803449 : Argentine, près de Rojas
30.2648982735253,149.441613619355 : Océan Pacifique, près de la fosse du Japon
-41.447058743573,-162.897429882856 :Océan Pacifique Sud
31.3210105706191,43.0036188922723 : Irak, près de Karbala et de Arar, zone désertique
51.0959386159527,140.353727370045 : Russie continentale, en face de l’île Sakhaline
10.7073637661307,14.7055933236143 : Afrique continentale, près de N’Djamena
72.0511604726763,13.7606796791616 : Mer de Norvège
-3.16467506922542,-118.088800153522 : Océan Pacifique Sud
57.1933402046566,125.42001226909 : Russie
15.0156951780626,23.6173422545232 : Soudan, Afrique
0.693272879419204,105.634334319018 : Mer de Chine méridionale, près de Singapour
5.6853994567647,144.171775358691 : Océan Pacifique Nord
57.1193557755404,142.38070063337 : Mer d’Okhotsk
-3.41863738565195,-32.5558904626026 : Océan Atlantique Sud
-43.4005580335695,-141.274953581579 : Océan Pacifique Sud
-59.1408893833474,-14.057973746069 : Océan Atlantique Sud
-43.7273570900159,-38.1967736934708 : Océan Atlantique Sud
-60.9623306576857,-159.857997835532 : Océan du Sud, près de l’Antarctique
-61.7294340657307,-136.373618618663 : Océan du Sud, près de l’Antarctique
-38.407476056716,-89.1450323175193 : Océan Pacifique Sud
-18.5078245475625,-178.966282115071 : Océan Pacifique, près de Wallis et Futuna
34.7556621320018,100.282355112638 : Chine continentale
20.3173332238488,58.0407740428225 : Mer d’Arabie, entre l’Inde et l’Arabie
-68.7392298501737,-21.4141647990727 : Océan du Sud, près de l’Antarctique
7.06014342079737,11.2906061065463 : Afrique continentale, Nigeria
21.5626404513493,135.18144372669 : Océan Pacifique Nord
27.0773473134182,90.1556991052541: Bhoutan, Asie

  • Bilan : il y a 19 points situés dans les océans par rapport à 30 points du globe au total. Avec l’échantillon de 30 coordonnées, le résultat montre ici que les océans occupent 63,33% de la surface du globe. On n’est pas trop loin des 70% attendus. Avec un échantillon de dizaines de milliers de coordonnées, ou des millions, la précision est sensiblement meilleure. Avec seulement 30 coordonnées, l’échantillon reste insuffisant, mais il a juste servi d’exemple pour l’article ici. Il est possible d’améliorer le code du programme pour rendre la besogne plus rapide, et en ayant un échantillon plus représentatif.

Voici le code source modifié :

for ($stat = 1; $stat <= 30; $stat++)
{
$boolean1 = rand();
$boolean2 = rand();
$signe1 = 1;
$signe2 = 1;
if ($boolean1 < 0.5)
{
$signe1 = -1;
}
if ($boolean2 < 0.5)
{
$signe2 = -1;
}
$latitude = $signe1 * rand(90);
$longitude = $signe2 * rand(180);
$url = « maps.google.fr/maps?q »;
print « <a href=\ »$url=$latitude,$longitude\ »>Position n° $stat</a> \n »;
}

© 2013 John Philip C. Manson

La conjecture de Marcel Pagnol sur les nombres premiers

Le 4 juin 2012 au soir, j’ai vu une page qui racontait que le célèbre et grand écrivain Marcel Pagnol avait découvert une formule qui génère des nombres premiers.

Voici ce que disait Pagnol lui-même : «Je crois avoir trouvé une formule qui permet de fabriquer des nombres premiers : c’est la petite équation suivante : x et x+2 sont deux impairs consécutifs, comme 5 et 7 ou 17 et 19, etc.
x+(x+2)+x(x+2) = premier; 5+7+5×7 = 47. C’est à dire que la somme de deux impairs consécutifs et de leur produit est un premier. Nous avons donc une formule qui nous permet de construire des nombres premiers, et un moyen très simple de confirmer l’exactitude de nos calculs. 15+17+15×17 = 287 premier.»
Source : Inédits, Marcel Pagnol, textes recueillis par Jacqueline et Frédéric Pagnol, Pastorelly 1992.   (d’après le site http://www.guichetdusavoir.org/viewtopic.php?t=19484)

Étant très intéressé par cette anecdote, j’ai voulu explorer la problématique de près.

Dans un autre site, il est raconté que la conjecture de Pagnol s’énonce ainsi : si n est un entier impair, alors n + (n+1) + n(n+1) est un nombre premier.

On peut simplifier ainsi : f(n) = n² + 3n + 1.

Alors, j’en déduis que n est de la forme 2x+1, avec x un entier positif ou nul. Ce qui donne la forme f(x) = 4x² + 10x + 5.

J’ai ensuite conçu un programme qui détermine la proportion de nombres premiers f(x) parmi tous les entiers f(x) testés.

Voici le résultat ci-dessous :

x = 0 ; f(x) = 5 est premier ; proportion de nombres premiers de Pagnol = 1
x = 1 ; f(x) = 19 est premier ; proportion de nombres premiers de Pagnol = 1
x = 2 ; f(x) = 41 est premier ; proportion de nombres premiers de Pagnol = 1
x = 3 ; f(x) = 71 est premier ; proportion de nombres premiers de Pagnol = 1
x = 4 ; f(x) = 109 est premier ; proportion de nombres premiers de Pagnol = 1
x = 7 ; f(x) = 271 est premier ; proportion de nombres premiers de Pagnol = 0.75
x = 9 ; f(x) = 419 est premier ; proportion de nombres premiers de Pagnol = 0.7
x = 11 ; f(x) = 599 est premier ; proportion de nombres premiers de Pagnol = 0.666666666666667
x = 12 ; f(x) = 701 est premier ; proportion de nombres premiers de Pagnol = 0.692307692307692
x = 13 ; f(x) = 811 est premier ; proportion de nombres premiers de Pagnol = 0.714285714285714
x = 14 ; f(x) = 929 est premier ; proportion de nombres premiers de Pagnol = 0.733333333333333
x = 18 ; f(x) = 1481 est premier ; proportion de nombres premiers de Pagnol = 0.631578947368421
x = 21 ; f(x) = 1979 est premier ; proportion de nombres premiers de Pagnol = 0.590909090909091
x = 22 ; f(x) = 2161 est premier ; proportion de nombres premiers de Pagnol = 0.608695652173913
x = 23 ; f(x) = 2351 est premier ; proportion de nombres premiers de Pagnol = 0.625
x = 24 ; f(x) = 2549 est premier ; proportion de nombres premiers de Pagnol = 0.64
x = 26 ; f(x) = 2969 est premier ; proportion de nombres premiers de Pagnol = 0.62962962962963
x = 27 ; f(x) = 3191 est premier ; proportion de nombres premiers de Pagnol = 0.642857142857143
x = 29 ; f(x) = 3659 est premier ; proportion de nombres premiers de Pagnol = 0.633333333333333
x = 31 ; f(x) = 4159 est premier ; proportion de nombres premiers de Pagnol = 0.625
x = 32 ; f(x) = 4421 est premier ; proportion de nombres premiers de Pagnol = 0.636363636363636
x = 33 ; f(x) = 4691 est premier ; proportion de nombres premiers de Pagnol = 0.647058823529412
x = 34 ; f(x) = 4969 est premier ; proportion de nombres premiers de Pagnol = 0.657142857142857
x = 37 ; f(x) = 5851 est premier ; proportion de nombres premiers de Pagnol = 0.631578947368421
x = 42 ; f(x) = 7481 est premier ; proportion de nombres premiers de Pagnol = 0.581395348837209
x = 46 ; f(x) = 8929 est premier ; proportion de nombres premiers de Pagnol = 0.553191489361702
x = 47 ; f(x) = 9311 est premier ; proportion de nombres premiers de Pagnol = 0.5625
x = 49 ; f(x) = 10099 est premier ; proportion de nombres premiers de Pagnol = 0.56
x = 56 ; f(x) = 13109 est premier ; proportion de nombres premiers de Pagnol = 0.508771929824561
x = 59 ; f(x) = 14519 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 62 ; f(x) = 16001 est premier ; proportion de nombres premiers de Pagnol = 0.492063492063492
x = 64 ; f(x) = 17029 est premier ; proportion de nombres premiers de Pagnol = 0.492307692307692
x = 66 ; f(x) = 18089 est premier ; proportion de nombres premiers de Pagnol = 0.492537313432836
x = 68 ; f(x) = 19181 est premier ; proportion de nombres premiers de Pagnol = 0.492753623188406
x = 69 ; f(x) = 19739 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 71 ; f(x) = 20879 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 73 ; f(x) = 22051 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 76 ; f(x) = 23869 est premier ; proportion de nombres premiers de Pagnol = 0.493506493506494
x = 78 ; f(x) = 25121 est premier ; proportion de nombres premiers de Pagnol = 0.493670886075949
x = 79 ; f(x) = 25759 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 81 ; f(x) = 27059 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 86 ; f(x) = 30449 est premier ; proportion de nombres premiers de Pagnol = 0.482758620689655
x = 87 ; f(x) = 31151 est premier ; proportion de nombres premiers de Pagnol = 0.488636363636364
x = 89 ; f(x) = 32579 est premier ; proportion de nombres premiers de Pagnol = 0.488888888888889
x = 91 ; f(x) = 34039 est premier ; proportion de nombres premiers de Pagnol = 0.489130434782609
x = 92 ; f(x) = 34781 est premier ; proportion de nombres premiers de Pagnol = 0.494623655913978
x = 93 ; f(x) = 35531 est premier ; proportion de nombres premiers de Pagnol = 0.5
x = 97 ; f(x) = 38611 est premier ; proportion de nombres premiers de Pagnol = 0.489795918367347
x = 102 ; f(x) = 42641 est premier ; proportion de nombres premiers de Pagnol = 0.475728155339806
x = 108 ; f(x) = 47741 est premier ; proportion de nombres premiers de Pagnol = 0.458715596330275
x = 109 ; f(x) = 48619 est premier ; proportion de nombres premiers de Pagnol = 0.463636363636364
x = 114 ; f(x) = 53129 est premier ; proportion de nombres premiers de Pagnol = 0.452173913043478
x = 117 ; f(x) = 55931 est premier ; proportion de nombres premiers de Pagnol = 0.449152542372881
x = 119 ; f(x) = 57839 est premier ; proportion de nombres premiers de Pagnol = 0.45
x = 121 ; f(x) = 59779 est premier ; proportion de nombres premiers de Pagnol = 0.450819672131148
x = 122 ; f(x) = 60761 est premier ; proportion de nombres premiers de Pagnol = 0.455284552845528
x = 123 ; f(x) = 61751 est premier ; proportion de nombres premiers de Pagnol = 0.459677419354839
x = 128 ; f(x) = 66821 est premier ; proportion de nombres premiers de Pagnol = 0.449612403100775
x = 131 ; f(x) = 69959 est premier ; proportion de nombres premiers de Pagnol = 0.446969696969697
x = 133 ; f(x) = 72091 est premier ; proportion de nombres premiers de Pagnol = 0.447761194029851
x = 143 ; f(x) = 83231 est premier ; proportion de nombres premiers de Pagnol = 0.423611111111111
x = 144 ; f(x) = 84389 est premier ; proportion de nombres premiers de Pagnol = 0.427586206896552
x = 146 ; f(x) = 86729 est premier ; proportion de nombres premiers de Pagnol = 0.428571428571429
x = 147 ; f(x) = 87911 est premier ; proportion de nombres premiers de Pagnol = 0.432432432432432
x = 148 ; f(x) = 89101 est premier ; proportion de nombres premiers de Pagnol = 0.436241610738255
x = 152 ; f(x) = 93941 est premier ; proportion de nombres premiers de Pagnol = 0.431372549019608
x = 156 ; f(x) = 98909 est premier ; proportion de nombres premiers de Pagnol = 0.426751592356688
x = 164 ; f(x) = 109229 est premier ; proportion de nombres premiers de Pagnol = 0.412121212121212
x = 174 ; f(x) = 122849 est premier ; proportion de nombres premiers de Pagnol = 0.394285714285714
x = 176 ; f(x) = 125669 est premier ; proportion de nombres premiers de Pagnol = 0.395480225988701
x = 178 ; f(x) = 128521 est premier ; proportion de nombres premiers de Pagnol = 0.396648044692737
x = 179 ; f(x) = 129959 est premier ; proportion de nombres premiers de Pagnol = 0.4
x = 181 ; f(x) = 132859 est premier ; proportion de nombres premiers de Pagnol = 0.401098901098901
x = 186 ; f(x) = 140249 est premier ; proportion de nombres premiers de Pagnol = 0.39572192513369
x = 188 ; f(x) = 143261 est premier ; proportion de nombres premiers de Pagnol = 0.396825396825397
x = 189 ; f(x) = 144779 est premier ; proportion de nombres premiers de Pagnol = 0.4
x = 192 ; f(x) = 149381 est premier ; proportion de nombres premiers de Pagnol = 0.398963730569948
x = 197 ; f(x) = 157211 est premier ; proportion de nombres premiers de Pagnol = 0.393939393939394
x = 203 ; f(x) = 166871 est premier ; proportion de nombres premiers de Pagnol = 0.387254901960784
x = 208 ; f(x) = 175141 est premier ; proportion de nombres premiers de Pagnol = 0.382775119617225
x = 209 ; f(x) = 176819 est premier ; proportion de nombres premiers de Pagnol = 0.385714285714286
x = 213 ; f(x) = 183611 est premier ; proportion de nombres premiers de Pagnol = 0.383177570093458
x = 223 ; f(x) = 201151 est premier ; proportion de nombres premiers de Pagnol = 0.370535714285714
x = 224 ; f(x) = 202949 est premier ; proportion de nombres premiers de Pagnol = 0.373333333333333
x = 227 ; f(x) = 208391 est premier ; proportion de nombres premiers de Pagnol = 0.37280701754386
x = 233 ; f(x) = 219491 est premier ; proportion de nombres premiers de Pagnol = 0.367521367521368
x = 236 ; f(x) = 225149 est premier ; proportion de nombres premiers de Pagnol = 0.367088607594937
x = 238 ; f(x) = 228961 est premier ; proportion de nombres premiers de Pagnol = 0.368200836820084
x = 242 ; f(x) = 236681 est premier ; proportion de nombres premiers de Pagnol = 0.366255144032922
x = 244 ; f(x) = 240589 est premier ; proportion de nombres premiers de Pagnol = 0.36734693877551
x = 246 ; f(x) = 244529 est premier ; proportion de nombres premiers de Pagnol = 0.368421052631579
x = 247 ; f(x) = 246511 est premier ; proportion de nombres premiers de Pagnol = 0.370967741935484
x = 249 ; f(x) = 250499 est premier ; proportion de nombres premiers de Pagnol = 0.372
x = 251 ; f(x) = 254519 est premier ; proportion de nombres premiers de Pagnol = 0.373015873015873
x = 252 ; f(x) = 256541 est premier ; proportion de nombres premiers de Pagnol = 0.375494071146245
x = 254 ; f(x) = 260609 est premier ; proportion de nombres premiers de Pagnol = 0.376470588235294
x = 258 ; f(x) = 268841 est premier ; proportion de nombres premiers de Pagnol = 0.374517374517374
x = 263 ; f(x) = 279311 est premier ; proportion de nombres premiers de Pagnol = 0.371212121212121
x = 264 ; f(x) = 281429 est premier ; proportion de nombres premiers de Pagnol = 0.373584905660377
x = 271 ; f(x) = 296479 est premier ; proportion de nombres premiers de Pagnol = 0.367647058823529
x = 273 ; f(x) = 300851 est premier ; proportion de nombres premiers de Pagnol = 0.368613138686131
x = 274 ; f(x) = 303049 est premier ; proportion de nombres premiers de Pagnol = 0.370909090909091
x = 279 ; f(x) = 314159 est premier ; proportion de nombres premiers de Pagnol = 0.367857142857143
x = 288 ; f(x) = 334661 est premier ; proportion de nombres premiers de Pagnol = 0.359861591695502
x = 293 ; f(x) = 346331 est premier ; proportion de nombres premiers de Pagnol = 0.357142857142857
x = 296 ; f(x) = 353429 est premier ; proportion de nombres premiers de Pagnol = 0.356902356902357
x = 297 ; f(x) = 355811 est premier ; proportion de nombres premiers de Pagnol = 0.359060402684564
x = 298 ; f(x) = 358201 est premier ; proportion de nombres premiers de Pagnol = 0.361204013377926
x = 301 ; f(x) = 365419 est premier ; proportion de nombres premiers de Pagnol = 0.360927152317881
x = 302 ; f(x) = 367841 est premier ; proportion de nombres premiers de Pagnol = 0.363036303630363
x = 304 ; f(x) = 372709 est premier ; proportion de nombres premiers de Pagnol = 0.363934426229508
x = 307 ; f(x) = 380071 est premier ; proportion de nombres premiers de Pagnol = 0.363636363636364
x = 308 ; f(x) = 382541 est premier ; proportion de nombres premiers de Pagnol = 0.365695792880259
x = 311 ; f(x) = 389999 est premier ; proportion de nombres premiers de Pagnol = 0.365384615384615
x = 319 ; f(x) = 410239 est premier ; proportion de nombres premiers de Pagnol = 0.359375
x = 321 ; f(x) = 415379 est premier ; proportion de nombres premiers de Pagnol = 0.360248447204969
x = 323 ; f(x) = 420551 est premier ; proportion de nombres premiers de Pagnol = 0.361111111111111
x = 326 ; f(x) = 428369 est premier ; proportion de nombres premiers de Pagnol = 0.36085626911315
x = 334 ; f(x) = 449569 est premier ; proportion de nombres premiers de Pagnol = 0.355223880597015
x = 337 ; f(x) = 457651 est premier ; proportion de nombres premiers de Pagnol = 0.355029585798817
x = 359 ; f(x) = 519119 est premier ; proportion de nombres premiers de Pagnol = 0.336111111111111
x = 363 ; f(x) = 530711 est premier ; proportion de nombres premiers de Pagnol = 0.335164835164835

  • Je remarque que pour x > 363, il n’existerait aucun nombre premier f(x). Ainsi, la formule de Pagnol produit une quantité finie de nombres premiers. Le programme continue le calcul jusqu’à x = 100000, mais l’écran semble ne laisser qu’un dernier résultat qui est x = 363, le nombre f(x) = 530711 étant a priori le plus grand nombre premier de la formule de Pagnol.
  • Il existe 122 nombres premiers de la forme 4x²+10x+5.
  • La proportion globale de nombres premiers f(x) par rapport à la totalité des x testés est de 1/3 environ, c’est-à-dire que pour la forme 4x² + 10x + 5, il y a une chance sur trois que cela soit un nombre premier, et cela ne vaut que dans l’intervalle 0 ≤ x ≤ 363.
  • Je constate que les nombres premiers de Pagnol sont répertoriés ici : http://oeis.org/A155737

* © 2012 John Philip C. Manson