Généalogie des MaLiBeLe
Les ancêtres ont fait ce que nous sommes. Mieux les connaître, c'est donc mieux nous connaître.
La citation du jour
Il n'y a rien de mal à imiter, l'essentiel est de savoir pourquoi on le fait.  (Constantin Fedine )
La réflexion du jour
Le doute est ma seule certitude. Mais peut-être suis-je trop scientifique ?
Activités
bénévole - geek - cycliste (cyclotouriste) - généalogiste - photographe - collectionneur - écrivain - enseignant - Diverses informations
Les mots clés
Le monde de l’astronomie * le monde des associations * le monde agricole * le monde du langage * le monde de l’école * Le monde des sciences et de la vie
Lorand

Site personnel de Roland Bouat. Pour les curieux : Lorand est un anagramme de Roland.

Du sosa à la génération et réciproquement

Un peu de mathématique en généalogie

Mots clés : généalogiste

lundi 6 février 2017 , par Roland


Cela fait plusieurs qu’on me pose l’une de ces deux questions : "Comment trouver la génération à partir du numéro sosa ?" ou "Comment trouver les numéros sosa limite haute et limite basse à partir du rang d’une génération ?". Dorénavant, je répondrai en envoyant un lien vers mon article.

Pour simplifier un peu, posons d’abord que la variable numéro sosa s’appellera sosa et que la variable génération s’appellera gene.

Comment trouver la génération à partir du numéro sosa ?

La formule brute

gene = ent(log (sosa,2))+1

Note : La fonction "Ent" (pour ENTier) s’appelle quelquefois "Int" (pour INTer).

Quelques explications

  • sosa contient donc le numéro sosa pour lequel on souhaite trouver la génération.
  • log(sosa,2) calcule le logarithme du numéro sosa dans la base 2.
  • Une génération étant un nombre entier, on ne conserve que la partie entière.
  • Le de cujus correspond à la génération n° 1, il faut donc systématiquement rajouter 1.

Dans une feuille de calcul

A
1 sosa gene
2  ? =ENT(LOG(A2 ;2))+1

Taper le numéro sosa à la place du " ?" dans la case A2, le résultat s’affichera dans la case B2.

Exemples de résultats obtenus

sosagene
1 1
2 2
3 2
4 3
5 3
6 3
7 3
8 4
16 5
32 6
128 8
256 9

Comment trouver les numéros sosa limites haute et basse pour une génération donnée ?

sosa(minimal)=2^(gene - 1)
sosa(maximal)=(2^gene)-1

Note : dans la deuxième formule, les parenthèses ne sont pas indispensables.

Quelques explications

  • Deux à la puissance du rang de la génération donne toujours le premier sosa de la génération suivante.
  • Pour le numéro sosa de la limite supérieure, on ôte donc un au résultat obtenu.
  • Pour le numéro sosa de la limite inférieure, on calcule la puissance de rang de génération immédiatement inférieur.

Dans une feuille de calcul

A
1 gene sosa minimal sosa maximal
2  ? =2^(A2-1) =(2^A2)-1

Taper le rang de la génération à la place du " ?" dans la case A2, les résultats s’afficheront dans les cases B2 (sosa minimal) et C2 (sosa maximal).

Les limites des 20 premières générations

genesosa minsosa max
0 1 1
1 2 3
2 4 7
3 8 15
4 16 31
5 32 63
6 64 127
7 128 255
8 256 511
9 512 1023
10 1024 2047
11 2048 4095
12 4096 8191
13 8192 16383
14 16384 32767
15 32768 65535
16 65536 131071
17 131072 262143
18 262144 524287
19 524288 1048575
20 1048576 2097151

Conclusion

Normalement, les messages de demandes de ces formules devraient se tarir rapidement... ;-)


Un message, un commentaire ?

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?

Votre message

Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.