Today you have some grade 11 biology homework and finally decide to start working on it after procrastinating on the Internet for a few hours. One of your problems is as follows:
Assume that in a particular species of plants, coloured flowers are dominant over white ones and that they are self-fertilized in nature (they mate between themselves). Assume that one heterozygous (alleles are distinct) coloured-flower plant, Cc, suddenly appears on an island and that its offspring thrive and multiply there in great numbers.
Assume also that it is an annual plant and that thus there is no chance for members of one generation to cross with those of another and that white and coloured plants are equal with respect to natural selection. What will be the proportions of the colours of the flowers after the fifth generation?
Recalling today's class, you remember that when a plant with genotype AB
(consisting of two alleles) self-fertilizes, the offspring is produced by the following algorithm:
- First, choose a random allele with uniform probability (
A
orB
). - Second, choose a random allele again with uniform probability (
A
orB
). The two chosen alleles need not be distinct. - Lastly, concatenate the alleles chosen together. You will get a genotype with the same length as the original gene (
AA
,AB
,BB
). After the alleles are concatenated, order does not matter, so we considerAB
to be the same asBA
. - Some genotypes appear with a greater probability than others. For every
AA
, there are two ofAB
and one ofBB
. Thus, we say thatAA
has a 1 in 4 chance of appearing.
You think to yourself that this problem is a bit on the easy side, so you spice it up a little. You generalize the above algorithm to work with up to alleles (the gene has forms). You always start with a plant that has alleles in its genotype — one allele of each possible form, and you call this generation 0. You wish to know the probability of a random member of the generation having a certain combination of alleles.
Because you are also a programmer, you want to write a program to produce the answer for you.
Input Specification
The first line of input will have , .
Output Specification
For each combination, output the probability of getting that genotype if you selected a random member of the population in the generation with an absolute or relative error no more than . Output the probabilities in nondecreasing order.
Sample Input
2 2
Sample Output
0.25
0.375
0.375
Explanation for Sample Output
For the sake of simplicity, we will use numbers to represent the different forms of the gene (referred to as alleles).
Note: In the sample output, 12
has a probability of 0.25, 11
has a probability of 0.375, and 22
has a probability of 0.375.
The parent genotype is 12
. Since the flower self-fertilizes, imagine 12
being combined with 12
to form an offspring.
The table below is called a Punnett Square, and is used to predict the genotypes of the next generation.
1 2
1 11 12
2 12 22
So for each generation, we assume 4 offspring from each genotype are produced. Notice that the ratio of 11
to 12
to 22
is .
We have now reached the first generation. Since there are now 4 plants, 4 Punnett Squares will be required.
1 1
1 11 11
1 11 11
1 2
1 11 12
2 12 22
1 2
1 11 12
2 12 22
2 2
2 22 22
2 22 22
We have now reached the second generation and thus have 16 genotypes. Counting, there are six 11
genotypes, four 12
genotypes, and six 22
genotypes. Calculating the probability (expressed as a decimal) for each of these, we obtain the desired output.
Comments
So apparently
Does not mean you have a 50-50 probability of picking either A or B, but a 2/3 for A and 1/3 for B.