Coding Grandmaster ยท project 20 of 46 ยท premium, free for now
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.
Learn
P(A or B) = P(A) + P(B) โ P(A and B). You subtract the overlap because outcomes that are in both groups get counted twice when you add. A deck of cards shows it clearly: hearts and kings overlap in exactly one card, the king of hearts.
Your task
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.
Stretch challenge
Prove with code that either == suit_count + rank_count - both for every suit and rank.
Press Run to see what your program prints.
More in this module
Keep going in Coding Grandmaster
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.
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 Maths Memory Match
Flip cards to match each sum with its answer. Times tables, addition, fractions and percentages.
FAQ
The OR rule: 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
- Bug HunterA Python program prints the wrong answer. Find the one line with theโฆPlay
- Predict the OutputRead a short Python program and choose what it prints. Then watch it runโฆPlay
- Code BuilderThe lines of a Python program are mixed up. Tap them into the rightโฆPlay
- Code JungleWrite real Python to guide Miko the monkey to every banana. 24 levels:โฆPlay