5 ms·
interesting aside: In education there is the issue of teaching mendelian genetics without causing a massive stink when some of the kids show traits they couldn
by TomMckenny 8y ago
interesting aside:
In education there is the issue of teaching mendelian genetics without causing a massive stink when some of the kids show traits they couldn't get from both parents.
This is often solved by intentionally avoiding real examples and using contrived examples that are not mendelian like eye color.
- prepend 8y agoA friend of mine caused a huge stink in her village when she pointed out how two siblings had blue eyes but all parents and grandparents had brown eyes. There was much chaos.
- yareally 8y agoBlue eyes are recessive and brown eyes are extremely dominant though. With parents having brown eyes, there could still be up to theoretical 50% chance that the children could have them. However, if both parents had blue eyes, then it's near impossible for the kids to have brown eyes if they're genetically related to both parents.
- jules 8y agoLet's analyse that. Suppose the frequency of the blue eye gene and the brown eye gene are the same in the general population, and suppose the prior probability of cheating is 10%. Then we can simulate this: from random import random, randint p_blue = 0.5 p_cheat = 0.1 def randbool(p): return random() < p def randgenes(): return randbool(p_blue), randbool(p_blue) def mate(mother, father): return mother[randint(0,1)], father[randint(0,1)] def blueeyes(p): return p[0] and p[1] n_cheat = 0 n_faithful = 0 for i in range(0,1000000): mother = (True,False) grandfather = randgenes() grandmother = randgenes() husband = mate(grandfather, grandmother) lover = randgenes() cheated = randbool(p_cheat) if cheated: kid1 = mate(mother, lover) kid2 = mate(mother, lover) else: kid1 = mate(mother, husband) kid2 = mate(mother, husband) if blueeyes(grandmother) or blueeyes(grandfather) or blueeyes(husband) or not blueeyes(kid1) or not blueeyes(kid2): continue if cheated: n_cheat += 1 else: n_faithful += 1 print(n_cheat) print(n_faithful) We get 4619 times cheated and 14226 times faithful. The probability of cheating went up substantially relative to the prior of 10%, but it's still below 30%. I'd say that the chaos wasn't justified.