Add Hamming Distance, Probability and Protein problems
This commit is contained in:
parent
49127ae4ef
commit
e94ff2985c
3 changed files with 139 additions and 0 deletions
38
10_iprb/iprb.nim
Normal file
38
10_iprb/iprb.nim
Normal file
|
@ -0,0 +1,38 @@
|
|||
import os
|
||||
import std/strutils
|
||||
|
||||
let k = parseInt(paramStr(1))
|
||||
let m = parseInt(paramStr(2))
|
||||
let n = parseInt(paramStr(3))
|
||||
|
||||
let T = k+m+n
|
||||
|
||||
# Let "AA" be the case when we choose an individual with 2 dominant alleles,
|
||||
# "Aa" be the case when we choose an individual with 1 dominant and 1 recessive allele,
|
||||
# "aa" be the case when we choose an individual with 2 recessive alleles.
|
||||
#
|
||||
# Event probabilities:
|
||||
# p(AA) = k/T
|
||||
# p(Aa) = m/T
|
||||
# p(aa) = n/T
|
||||
# p(AA|AA) = (k-1)/(T-1)
|
||||
# p(Aa|AA) = m/(T-1)
|
||||
# and so on and so on.
|
||||
#
|
||||
# Choosing 2 individuals for mating is the combination of the probability events of choosing 2 individuals.
|
||||
# E.g., the probability of choosing two AA individuals is p(AA)*p(AA|AA) = (k/T)*((k-1)/(T-1))
|
||||
# Furthermore, for certain combinations, the probability that an offspring will display
|
||||
# the dominant phenotype is < 1. For example, when two Aa individuals mate, the probability of a dominant
|
||||
# phenotype is 0.75.
|
||||
|
||||
let solution =
|
||||
(k/T) * ((k-1)/(T-1)) +
|
||||
(k/T) * (m/(T-1)) +
|
||||
(k/T) * (n/(T-1)) +
|
||||
(m/T) * (k/(T-1)) +
|
||||
(m/T) * ((m-1)/(T-1)) * 0.75 +
|
||||
(m/T) * (n/(T-1)) * 0.5 +
|
||||
(n/T) * (k/(T-1)) +
|
||||
(n/T) * (m/(T-1)) * 0.5
|
||||
|
||||
echo $solution
|
Loading…
Add table
Add a link
Reference in a new issue