bimota
11.01.11, 03:11
Tak sie ostatnio zastanawiam nad szkodliwoscia kazirodztwa. Jedni twierdza, ze jest szkodliwe, inni, ze nie...
Zrobilem mala symulacje na kompie, oczywiscie mocno uproszczona wiec nie wiem na ile oddaje rzeczywistosc, no i mam nadzieje, ze sie nie ryplem gdzies.
Przyjalem, ze wychodzimy z populacji idealnie zdrowej, w ktorej zachodza mutacje recesywne genow. Pukaja sie tylko rowiesnicy, nie ma stalych zwiazkow, mozna nawet zrobic dziecko samemu sobie. :) Kazdy osobnik ma 10 genow.
Wyniki dla 10 prob:
Dla populacji 10 osobowej przez 100 pokolen:
Ilosc genow chorych: 3-28, srednio 18,7%
Recesywnych (zdrowy, ale moze "zarazic"): 18-37, srednio 25,7%
Idealnych: 46-70, srednio 55,6%
Dla populacji 100 os.:
Chore: 51-92, sr.: 6,09%
Reces.: 308-419, sr: 31,61%
Ideal: 489-633, sr: 52,3%
Czyli im wieksza populacja tym wyniki bardziej stabilne, wiecej genow srednich - recesyjnych. W malej populacji mamy wieksze ryzyko zachorowan, ale tez wieksze, ze bedzie ich mniej, a wiecej zostanie idealnych, zalezy jak sie uda.
Czyli generalnie tak jak sie nalezalo spodziewac.
Ale ciekawostka jest, ze w populacji 4-osobowej zdarza sie, i to wcale nie rzadko, ze w 10 pokoleniu wszyscy sa nadal idealni.
W 1000 pokoleniu wychodza prawie wszystkie geny chore, nawet w populacji 1000-osobowej. Zalozylem, ze choroby nie sa smiertelne i nie powoduja bezplodnosci (w dobie invitro wszystko mozliwe :P).
Warto by bylo sie tym pobawic, zbadac poszczegolnych osobnikow, czy geny...
Zaznaczam, ze nie znam sie na genetyce, model wymyslilem intuicyjnie, nie wiem np. dlaczego wszedzie sie mowi tylko o mutacjach recesyjnych... Moze ktos cos wie na ten temat... ?
Jak ktos sie chce pobawic lub znalezc bledy wklejam program:
CLS
DIM OSO(1000,10) 'OBOBNIK(NR OSOBNIKA,NR GENU) - RODZICE
DIM OSD(1000,10) ' DZIECI
FOR I=1 TO 10
INPUT "POP:";POP ' WIELKOSC POPULACJI
FOR N=1 TO POP ' NA POCZATKU WSZYSCY PO 2 DOBRE GENY
FOR F=1 TO 10
OSD(N,F)=2
OSO(N,F)=2
NEXT F
NEXT N
FOR N=1 TO 1000 ' ILOSC POKOLEN
FOR F=1 TO POP ' DZIEDZICZENIE
GEN=RAND(10)+1 ' LOSUJEMY GEN
OSO(F,GEN)=OSO(F,GEN)-1 ' MUTACJA GENU
IF OSO(F,GEN)<0 THEN OSO(F,GEN)=0
' PRINT "MUTACJA",F,GEN,OSO(F,GEN)
GEN=RAND(10)+1
G1=OSO(RAND(POP)+1,GEN) ' LOSUJEMY OSOBNIKA, POBIERAMY LOSOWY GEN
G2=OSO(RAND(POP)+1,GEN) ' TU Z OSOBNIKA 2
SUM=G1+G2
IF SUM=4 THEN OSD(F,GEN)=2 ' Z 2 DOBRYCH 2 DOBRE
IF SUM=3 THEN OSD(F,GEN)=1+RAND(2) ' 1 DOBRY I 2 DOBRE
IF SUM=2 ' 2 DOBRE I 0 DOBRYCH LUB 1 DOBRY I 1 DOBRY
IF G1=0 OR G2=0 THEN OSD(F,GEN)=1 ' 0 DOBRYCH I 2 DOBRE DAJA 1 DOBRY
IF G1=1 ' 1 DOBRY I 1 DOBRY
LOS=RAND(4)
IF LOS=3 THEN LOS=1 ' 2 SZANSE NA 1 DOBRY
OSD(F,GEN)=LOS
ENDIF
ENDIF
IF SUM=1 THEN OSD(F,GEN)=RAND(2) ' 1 DOBRY 0 DOBRYCH DAJA 1 LUB 0
IF SUM=0 THEN OSD(F,GEN)=0 ' 0 DOBRYCH
' PRINT GEN,G1,G2,OSD(F,GEN)
' INPUT A$
NEXT F
G0=0
G1=0
G2=0
FOR F=1 TO POP ' ZMIANA POKOLEN
FOR G=1 TO 10
GEN=OSD(F,G)
OSO(F,G)=GEN
IF GEN=0 THEN G0=G0+1
IF GEN=1 THEN G1=G1+1
IF GEN=2 THEN G2=G2+1
NEXT G
NEXT F
' IF N<1100 THEN PRINT N,G0,G1,G2
' IF N MOD 10=0 THEN INPUT A$
NEXT N
PRINT N,G0,G1,G2
INPUT A$
NEXT I