Coding Grandmaster ยท project 19 of 46 ยท premium, free for now
Counting outcomes
Write ways(target), the number of dice pairs that add up to target, and as_fraction(top, bottom) that returns text like 1/6 in lowest terms. Print the chance of a total of 7.
Learn
Probability is favourable outcomes divided by all equally likely outcomes. With two dice there are 6 ร 6 = 36 equally likely pairs, so a program can list them all with two loops and count the ones you want. Always simplify the fraction: 6/36 is the same as 1/6, and math.gcd finds the shared factor.
Your task
Write ways(target), the number of dice pairs that add up to target, and as_fraction(top, bottom) that returns text like 1/6 in lowest terms. Print the chance of a total of 7.
Stretch challenge
Which total is the most likely? Draw the counts as a bar chart.
Press Run to see what your program prints.
More in this module
Keep going in Coding Grandmaster
The OR rule
Build the 52-card deck as (rank, suit) pairs, then count the cards that are the chosen suit, the chosen rank, both, and either. Print the four counts and the chance of either as a fraction in lowest terms.
Start โ21Given thatโฆ
For the chosen club print how many students are in it, how many passed, and P(passed | club) as a percentage with one decimal place. Then print P(passed) for all students.
Start โ22Bayes and the medical test
Write posterior(prior, sensitivity, specificity) returning P(sick | positive) rounded to 4 decimal places. Print it for prior 0.01, sensitivity 0.9, specificity 0.9.
Start โ23The binomial distribution
Write binomial(n, k, p) and use it to print the chance of exactly 3 heads in 5 fair flips, the chance of at least 4 heads, and the total of all the chances (rounded to 6 places).
Start โ24How computers fake randomness
Write next_value(seed) with that formula, and roll(seed) = 1 + seed % 6. Starting from the given seed, roll 600 times (feeding each result back in) and print how many times each face 1 to 6 came up.
Start โPractise the idea
๐ช Play Monty Hall Lab
Pick a door, then stay or switch. Play ten games, then run a thousand to see the surprising answer.
FAQ
Counting outcomes: common questions
I am stuck. What can I do?
Press Hint for a nudge, read the message next to each goal, and compare your code with the lesson text. If you still need it, Show answer reveals a model solution. Try to type it yourself rather than copy it.
Does my work get saved?
Your ticks and XP are saved in this browser, and in your account if you log in. The code you type is not stored on a server.
Start a conversation
Enjoying coding? Meet a teacher.
Tell us the learner's age, country and what they would like to build, and we will suggest a class. A parent or guardian can make the enquiry.
- Tell us the learnerโs age or grade and goals
- Weโll suggest a suitable class or learning path
- Weโll confirm format, timing and fees with a parent or guardian
Play it, don't just read it
Write some code right now
Free games that need no sign-up. Pick one and play for five minutes.
Pick a game
- Code BuilderThe lines of a Python program are mixed up. Tap them into the rightโฆPlay
- Predict the OutputRead a short Python program and choose what it prints. Then watch it runโฆPlay
- Bug HunterA Python program prints the wrong answer. Find the one line with theโฆPlay
- Code JungleWrite real Python to guide Miko the monkey to every banana. 24 levels:โฆPlay