You are correct -- the numbers do work out the same. I will show how they are related.
For the first case, let's imagine we had 5 flavors of ice cream (Banana, Chocolate, Lemon, Strawberry and Vanilla). You are picking 3 scoops and *are* allowed to repeat flavors, if you like.
Let's line up their containers next to each other as follows:
B C L S V
Next imagine you wanted to create a routine for an automated scooper telling it to pick 3 flavors. The scooper starts on the first flavor and ends on the last flavor.
The two instructions you can give the machine are:
- Scoop the current flavor (◯)
- Move to the right (➔)
So if you wanted 3 scoops of chocolate it would be:
If you wanted 2 scoops of Lemon and 1 scoop of Vanilla it would be:
Or if you wanted 1 scoop of Chocolate, Strawberry and Vanilla it would be:
Every combination with repetition allowed would correspond to one of these patterns. So if we can count these patterns, we can count the ways to pick 3 scoops of ice cream, repetition allowed.
Notice that there are always 3 circles (3 scoops of ice cream) and 4 arrows (we need to move 4 times to go from the 1st to 5th container).
In this case, therefore we have 7 symbols and we are picking the position for 3 times we scoop. This is the same as the second expression where you have 7 items (symbols in the instruction) and you are picking which 3 are the "scoop" command.
To generalize this, if we have n items to pick from and we want k of them (allowing for repetition), that's the same as a string of n + k - 1 items and picking the k to select.
In your case, with 5 ice cream flavors and 3 scoops, this does turn into (5 + 3 - 1) = 7 items where we are picking 3.
C(7,3) = 35
Notice it's not just always add 2. It was "add 2" in this case because we were picking 3 flavors. If you were picking 2 flavors, it would be add 1. If you were picking 4 flavors, it would be add 3, etc.