実際のコンピュータで出力された結果を眺めていて
Excelのワークシートを使って数える方法を思いついたので紹介します。


まず、次のような表を作ります。

A B C D E
1 1 5 25 125 625
2 2 10 50 250 1250
3 4 20 100 500 2500
4 8 40 200 1000 5000
5 16 80 400 2000 10000
6 32 160 800 4000 20000
7 64 320 1600 8000 40000
8 128 640 3200 16000 80000
9 256 1280 6400 32000 160000
10 512 2560 12800 64000 320000

これの作り方は、説明するまでもなく縦に2倍、横に5倍してるだけです。


次にどこでもいいのですが、例えばA13に次の数式を入れて縦横同じ大きさにコピーします。

=ROUNDUP((11-ROW(A1))*(11-COLUMN(A1))/2,0)-COUNTIF(INDIRECT("A1:E"& (11-ROW(A1))),"<"& A1)


すると、こんな表ができます。

A B C D E
13 50 42 32 20 5
14 44 36 25 13 -1
15 38 29 18 6 -6
16 31 22 11 1 -9
17 24 15 6 -3 -10
18 16 9 1 -5 -10
19 10 4 -2 -6 -8
20 5 1 -3 -4 -6
21 2 -1 -2 -3 -4
22 1 0 -1 -1 -2


最後に上の表でプラスの値だけを合計します。

=SUMIF(A13:E22,">0")

これで517という数字がでるはずです。


最初の表は3つの数字の一番小さい数字を意味します。
それで、1000より大きい数字は意味はないので消してもいいです。
次の表は、最初の数字が決まったときのパターン数です。
そして、パターン数を決める数式は単純に書くと
 \frac{ \left(10-x\right)  \left(10-y\right) }{2} -z
xとyはそれぞれ最初の数字に使った2と5の数。
そこから、後の2つの数字で使える2と5の数を求めかけ合わせて2で割り切り上げます。
zは最初の表で最初の数字よりも小さい数字の数です。


このように数式で解けるようですが、上記のことを最初の数字の数である29回も行わないといけないので
簡単とはいかずエクセルを使ってみました。