Seite 1 von 1
Problem mit einer Ahnenliste
Verfasst: 17.10.2015, 12:28
von nanteos
Ich möchte eine Ahnenliste meiner Kinder erstellen und stoße auf diese Probleme:
1. Bis zur Ahnenreihe 62 werden die Personen mit Kekule-Ordungsnummer aufgelistet.
2. In der Ahnenreihe 63 werden die Personen ohne Ordnungsnummer aufgelistet.
3. Ahnenreihe 64 und folgende wird nicht wiedergegeben.
Welche Einwirkungsmöglichkeit habe ich da?
Gruß
nanteos
Verfasst: 17.10.2015, 19:30
von MarcP
Du redest sicher von Generationen nehm ich an.
64 Gens zurück ist aber ne Menge Holz.
Ich erklärs mal technisch und hol mal weiter aus.
Die Nummerierung der Ahnen (kekule in dezimal (basis 10)) wird ja fortlaufend durchgeführt.
1G) 1 = proband
2G) 2 bis 3 Eltern
3G) 4 bis 7 Großeltern
4G) 8 bis 15 UrGroseltern
Da ein Rechner in Binär (basis2) arbeitet, das Ganze umgerechnet:
1G) 1 = proband (1stelle)
2G) 10 bis 11 Eltern (2stellen)
3G) 100 bis 111 Großeltern (3Stellen)
4G) 1000 bis 1111 UrGroseltern (4stellen)
wie du siehst wird bei jeder Generation eine Stelle zur Adressierung des Ahns mehr gebraucht. Oder auch mit jeder Generation verdoppelt sich die Anzahl der Personen und auch der Addressverbrauch.
weitergerechnet:
63G) 1000000..... bis 111111... (63stellen)
64G) 1000000..... bis 111111.... (64stellen)
bei der 64.Generation werden also 64 Stellen benötigt am alle Personen in dieser Gen zu nummerieren.
Jeder Stelle kann 0 oder 1 sein >> ein Bit.
Also 64Bit. Du wirst auch ein 64Bit Betriebssystem und Rechner haben. Und dieses limitiert in dem Fall den maximalen Wert diverser Variablen in Programmiersprachen (diese muss auch 64Bit tauglich sein).
Die Länge eines Wertes ist also maximal 64Bit lang.
In Dezimal: 2^64-1=18446744073709551615. Das ist die Kekule der letzten Person in der 64.Gen. (minus 1 da bei 1 und nicht bei 0 kekule startet)
Möchte man nun auch negative Werte speichern können ist es noch ein Bit weniger da dieses plus oder minus angibt. Hat weniger der Programmierer, sondern der Programmierer der Sprache definiert.
Bleiben 63 Bit >> 63 Generationen
Wie diese Grenze zum tragen kommt liegt auch am Programmierer. In dem Fall mit den Effekten wie du es beschreibst.
Es gibt schon Möglichkeiten Zahlen über 64Bit zu verarbeiten. Theroretisch bis der ganze RAM + Festplatten gefüllt sind.(Zahlen als Zeichenketten).
Allerdings ist die Verabreitung umständlich und so auch sehr langsam.
Braucht man normalerweise nicht.
Verfasst: 17.10.2015, 20:29
von nanteos
Herzlichen Dank MarcP für die ausführliche Information.
a) natürlich meine ich Generationen, AB verwendet den Begriff Ahnenreihe; daher hatte ich ihn verwendet. Tatsächlich haben wir Daten zu über 90 Generationen. Das ist nicht ganz ungewöhnlich; z.B. beschreibt die Ahnenliste von Bernd Josef Jansen über 100 Generationen.
b) ich verstehe die Problematik der langen Kekule-Ordungsnummern. Es müssen schon besondere Programmiermethoden verwendet werden, um diese Zahlen zu errechnen und darzustellen.
Eine Darstellung in einem Zahlenfeld ist in dieser Dimension wohl nicht mehr möglich. Dann geht es wohl nur als Textfeld.
Ich kann nur auf die von Bernd Josef Jansen veröffentlichte Ahnenliste verweisen; dort ist es auch gelungen.
c) Offen ist für mich, wie ich AB dazu bewege, die Ahnenliste über die 63. Ahnenreihe hinaus fortzusetzen.
Gruß
nanteos
Verfasst: 17.10.2015, 20:49
von MarcP
Da wirst garnichts tun können.
Warum genau die Ausgabe bei 64Gen endet obwohl eh keine Kekulenr mehr berechnet werden weiss nur Dirk.
ggf sind intern noch andere Begrenzungen aus dem selben Grund die hier greifen und schwer umgehbar sind.
Verfasst: 17.10.2015, 21:12
von Gast
Dann habe ich wohl die Systemgrenze überschritten. Ich muss überlegen wie ich mich damit arrangiere.
Gruß nanteos
Verfasst: 17.10.2015, 22:16
von Marcus
Der Fehler ist schon lange bekannt und bisher hat Dirk keinen Workaround dazu erstellt. Auf allzu schnelle Erledigung würde ich also erst einmal nicht hoffen.
Es geht ohne die Option "Geschwister als Probanden" aber wohl ohne den Fehler:
http://www.ahnenblattportal.de/viewtopi ... 0547#30547
Marcus