Due: Monday, March 4, 2019
Points: 100
The file “atomic_weights.txt” contains lines with three fields separated by tabs. The first field is the atomic weight, the second field is the symbol for the element, and the third field is the name of the element (which you can ignore for this problem).
We will proceed in stages, to make life easier. You should turn in only the final program, though.
A good way to check your program is to have it print out each atom’s symbol and the number that follows it, if any.
Hint: Element symbols are either 1 or 2 letters. The first letter is always capitalized; if there is a second letter, it is always lower case. So “HO” is a hydrogen atom (H) and an oxygen atom (O), and “Ho” is the symbol for holmium. Similarly, “SN” is a sulfur atom (S) and a nitrogen atom (N), and “Sn” is the symbol for tin. Similarly, if no number follows an element’s name, treat it as 1.
Your output is to look like this (input is in red).
Chemical composition? C2H5OH↵
The atomic weight of C2H5OH is 46.08
Chemical composition? H2O↵
The atomic weight of H2O is 18.02
Chemical composition? HO↵
The atomic weight of HO is 17.01
Chemical composition? Ho↵
The atomic weight of Ho is 164.93
Chemical composition? SN3↵
The atomic weight of SN3 is 74.1
Chemical composition? Sn3↵
The atomic weight of Sn3 is 356.13
Chemical composition? control-D
Call your program “compound.py”.
Now, breathe deeply and calm down. We will do this in steps!
>>> hasduplicates([1, 2, 3, 4, 5, 5, 2])↵
True
>>> hasduplicates([1, 2, 3, 4, 5, 6, 7])↵
False
Hint: To generate a random number between a and b inclusive, put
import randomat the top of the program, and then call the function random.randint(a, b).
For 2 people, the probability of 2 birthdays is 0.00220
For 3 people, the probability of 2 birthdays is 0.00880
For 4 people, the probability of 2 birthdays is 0.01680
For 5 people, the probability of 2 birthdays is 0.02940
For 6 people, the probability of 2 birthdays is 0.03940
For 7 people, the probability of 2 birthdays is 0.05900
For 8 people, the probability of 2 birthdays is 0.06840
For 9 people, the probability of 2 birthdays is 0.09700
For 10 people, the probability of 2 birthdays is 0.12360
How many people are needed so that the probability of two of them with a birthday in common is over 0.9? How many are needed such that the probability of two of them having the same birthday is at least 0.5? Put these answers into a comment at the head of the file.
Hint: Don’t be surprised if your probabilities are slightly different than the ones shown in the sample output. As randomness is involved, it is very unlikely your numbers will match the ones shown here.
Call your program “bday.py”.
|
You can also obtain a PDF version of this. Version of February 18, 2019 at 12:04AM |