forum Ancestrologie

Ancestrologie - Le Programme => Ancestrologie - Rapports d'anomalies => Discussion démarrée par: DDdeBerdeux le 12 Mai 2006 à 12:04:29

Titre: SOSAs inexacts après 50 générations
Posté par: DDdeBerdeux le 12 Mai 2006 à 12:04:29
Problème constaté avec l'aide de Roger1:

Audelà de la 50ième génération, les N° SOSA ne sont plus significatifs.

Ce nombre pouvant être très important, (un format INTEGER n'aurait pas permis de numéroter plus de 31 générations), c'est le format DOUBLE PRECISION qui est utilisé dans Ancestrologie pour mémoriser le N°SOSA.

Or s'il permet de mémoriser de très grands nombres, ce format n'a une précision que de 15 chiffres, ce qui signifie qu'après la 50ième génération, par exemple le père et la mère ont le même SOSA.

Je ne vois pas de solution simple (stocker le SOSA sous forme de chaîne de caractères et programmer la multiplication et l'addition de cette chaîne, c'est pas simple...).

Les autres types:

NUMERIC(18,0) autorise 60 générations

BIGINT  autorise 63 générations

mais provoquent une erreur audelà de ces limites, et ne peuvent aujourd'hui être affichés par le logiciel qui attend un nombre à virgule flottante.

A+

André
Titre: SOSAs inexacts après 50 générations
Posté par: AquaBlue le 13 Mai 2006 à 01:00:06
Comme à ce niveau on n'est plus dans la généalogie mais dans la science fiction, la fable , le rêve .... ça n'a pas beaucoup d'importance  :!:  :D
Titre: SOSAs inexacts après 50 générations
Posté par: DDdeBerdeux le 13 Mai 2006 à 14:13:11
Tu n'as pas tout à fait tort :wink:

Je voulais surtout signaler ce fait pour que certains n'en soient pas surpris.

A+

André
Titre: SOSAs inexacts après 50 générations
Posté par: Roger 1 le 13 Mai 2006 à 15:05:39
Tout à fait, cela relevait plus d'ailleurs, d'une possibilité informatique.
Titre: SOSAs inexacts après 50 générations
Posté par: AquaBlue le 13 Mai 2006 à 22:44:53
Et les DOUBLE PRECISION ne peut-on pas les utiliser en "unsign" (c.a.d sans le signe moins) ce qui double la capacité  :?:  :?:
Titre: SOSAs inexacts après 50 générations
Posté par: DDdeBerdeux le 13 Mai 2006 à 23:12:16
Sans certitude, je ne le pense pas, car il s'agit d'un codage sous forme logarithmique (caractéristique + mantisse).

Il n'en est pas de même pour le INTEGER, BIGINT et SMALLINT dont le bit de poids fort est utilisé pour le signe. UNSIGN doit permettre de récupérer ce bit, mais j'ignore si c'est applicable dans FB.

A+

André

PS: un bit supplémentaire= doubler la capacité ne permet de gagner qu'une seule génération