■
実際のコンピュータで出力された結果を眺めていて
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より大きい数字は意味はないので消してもいいです。
次の表は、最初の数字が決まったときのパターン数です。
そして、パターン数を決める数式は単純に書くと
xとyはそれぞれ最初の数字に使った2と5の数。
そこから、後の2つの数字で使える2と5の数を求めかけ合わせて2で割り切り上げます。
zは最初の表で最初の数字よりも小さい数字の数です。
このように数式で解けるようですが、上記のことを最初の数字の数である29回も行わないといけないので
簡単とはいかずエクセルを使ってみました。