お茶漬けぶろぐ

3変数の鶴亀算

[mathjax]

唐突だが、3変数の鶴亀算を解けるようにしておきたい。ぶっちゃけ数学は苦手科目だが、それっぽく言葉で表現できるようにしたい。完全に自分用メモである。

よく聞く、つまり2変数の鶴亀算は、例えば次のようなもの。

鶴と亀が合計10匹いる。足の本数は合計34本である。鶴と亀はそれぞれ何匹ずついるだろうか? 但し、鶴の足は2本、亀の足は4本とする。 > >

10匹全て鶴だったとすると、足の総数は以下の通り。
\(10[匹]\times2[本/匹] = 20[本]\)
これだと本数が不足しているため、数匹を鶴ではなく亀に変更したい。足の本数は、1匹変更するごとに2→4[本]になるので、1匹変更ごとの増分は2[本/匹]である。
合計本数に辿り着くまで鶴→亀に変更するとき、必要匹数は以下の通り計算できる。
\(\frac{34[本]-20[本]}{2[本/匹]}=7[匹]\)
よって、亀が7匹、鶴は3匹いるということがわかる。

これくらいなら大して考えずノリで計算できる。

さて、問題は3変数のとき。

10000円札、5000円札、1000円札が手元に合計1000枚あり、その総額は1234000円である。各お札は何枚ずつあるのだろうか?

3変数の場合は、図を使うと表現しやすい。

各頂点の名前は利用有無に関わらずてきとうに付けている

突然階段状の図を掲載したが、横軸が枚数、縦軸が1枚あたりの金額、そして面積が総額を表現している。
全て書き連ねてみると、以下の感じ。
AB:10000円札の枚数
DE:5000円札の枚数
HI:1000円札の枚数
AJ:10000円
DK:5000円
HL:1000円
AJKB:10000円札の総額
DKLE:5000円札の総額
HLMI:1000円札の総額

手順は全部で4段階。
10000円札、5000円札、1000円札の枚数をそれぞれa, b, cとする(当然全て0か自然数である)。また、煩雑になるため、以降の金額は全て3桁落として記述する。

  1. どのお札であろうと、必ず1円はかかるため、その分を取り除く。つまり全体の面積から、FJMIの面積を引く。
    \(1234 - (1\times1000) = 234\)
  2. 多角形AFHEDBについて考える。これはAFGBとDGHEの和のため、以下の式で表現できる。
    \(9\times a + 4\times b = 234\)
    \(4\times b = 234 - 9\times a\)
    \(b = \frac{234 - 9\times a}{4}\)
  3. 試しに値を入れてみて、それっぽい数字が出るか試す。
    \(a=0のとき、b=\frac{234}{4}であり不適\)
    \(a=2のとき、b=\frac{216}{4}=54であり適当\)
  4. 以下の通り、全ての未知数の候補が見つかる(他にも条件を満たす組み合わせがあるため「候補」)。
    \(c=1000-(a+b)=944\)
    ※試しに計算してみると以下の通り、確かに満たしている。
    \(10\times2 + 5\times54 + 1\times944 = 1234\)

いやー、数学って難しいね(しみじみ)

< ArchLinux+btrfsでストレージを組む練習

mirakurun-serverのCPUが100%で止まる >