Now, let's dive into combinations. In the previous lab, you saw how the order was important when using permutations. Cracking a code is one example, but what if the order doesn't matter, for example, when an engaged couple wants to pick 3 wedding cakes from a list of 15? You'll need to use another technique here, and this is where combinations come in handy!
You will be able to:
- Practice how to use combinations when the order is not important
- Create (easy) functions for combinations and permutations
From the previous lab, you remember that we created a factorial function like this.
Now, let's use this factorial function to create a function combination
as well as permutation
, both holding 2 arguments n and k.
def factorial(n):
prod = 1
while n >= 1:
prod = prod * n
n = n - 1
return prod
def permutation(n,k):
None
def combination(n,k):
None
Great! We can use these functions in the following exercises.
Flatiron School is holding a mini mathematics contest and there are 9 people in the last round.
a. Imagine flatiron school is giving out bronze, silver, and gold medal respectively. How many possible ways are there to create this top three?
medal_top_3 = None
medal_top_3 # 504.0
b. Imagine Flatiron school granting the first three contestants a massive fruit basket. How many ways of selecting three people are there in this case?
scholarship_top_3 = None
scholarship_top_3 # 84.0
Imagine you have 6 different consonants and 4 different vowels written on pieces of paper in a bag. You'll draw 5 letters out of the bag.
Write the code for getting total number of ways of drawing 2 out of 6 and 3 out of 4 below
draw_cons = None
draw_vow = None
The total number of ways to draw 5 letters out of 10 letters.
sample = None
The probability of drawing 2 consonants and 3 vowels when drawing 5 letters:
None # 0.23809523809523808
You can reuse a part of the previous exercise. Which part? print the result below.
draw_cons = None
draw_vow = None
Now we need to take into account that order is important.
order_5_letters = None
The total number of words with 2 consonants and 3 vowels then equals:
total_words = None
print("In total,", total_words, "words with 2 consonants and 3 vowels can be formed from our existing letter pool.")
# In total, 7200.0 words with 2 consonants and 3 vowels can be formed from our existing letter pool.
We're holding a mini soccer tournament and 16 people are participating. We'd like to form 4 teams of 4. How many ways are there to do this?
# your code here # the answer is 63063000.0
In this lab, you got some practice with combinations! Congrats, combinations and permutations are the cornerstones of combinatorics, and you now know how to use them in various settings.