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.

Make sense?