場合の数 10個のりんごを3人に分ける

www.youtube.com

を見ても全然わからなかったので、プログラムの力を使って強引に解いてみた。

count = 0
(1..10).each do |i|
  (1..10).each do |j|
    (1..10).each do |k|
      if i + j + k == 10
        count += 1
        puts "#{i} #{j} #{k} count => #{count}"
      end
     end
  end
end

1 1 8 count => 1
1 2 7 count => 2
1 3 6 count => 3
1 4 5 count => 4
1 5 4 count => 5
1 6 3 count => 6
1 7 2 count => 7
1 8 1 count => 8
2 1 7 count => 9
2 2 6 count => 10
2 3 5 count => 11
2 4 4 count => 12
2 5 3 count => 13
2 6 2 count => 14
2 7 1 count => 15
3 1 6 count => 16
3 2 5 count => 17
3 3 4 count => 18
3 4 3 count => 19
3 5 2 count => 20
3 6 1 count => 21
4 1 5 count => 22
4 2 4 count => 23
4 3 3 count => 24
4 4 2 count => 25
4 5 1 count => 26
5 1 4 count => 27
5 2 3 count => 28
5 3 2 count => 29
5 4 1 count => 30
6 1 3 count => 31
6 2 2 count => 32
6 3 1 count => 33
7 1 2 count => 34
7 2 1 count => 35
8 1 1 count => 36

ちゃんと答えの36通りになった。