§C3.4フロベニウスの硬貨問題

最終更新

フロベニウスの硬貨問題は、互いに素で、ともに11より大きい正の整数a,ba,bについて、非負整数x,yx,yによるax+byax+byでは表すことができない最大の非負整数を求めます。本記事では、その最大値ab−a−bab-a-bと、表すことができない非負整数の個数(a−1)(b−1)2\dfrac{(a-1)(b-1)}2を扱います。

1 表すことができる数を書き出す

定義 1.1 (二数で表すことができる数).aa、bbを正の整数とする。00以上の整数nnが、00以上の整数xx、yyを用いて

n=ax+byn = ax + by

と書くことができるとき、nnはaaとbbで表すことができるという。そうでないとき、nnはaaとbbで表すことができないという。

係数xx、yyに00以上という条件を課している点が、この問いの前提です。この条件を外して整数全体を許すと、gcd⁡(a,b)=1\gcd(a,b) = 1のとき、どの整数も表すことができます。

例 1.2 (a=3a = 3、b=5b = 5の場合).33と55で表すことができる00以上の整数を小さい順に書き出すと、

0, 3, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, …0,\ 3,\ 5,\ 6,\ 8,\ 9,\ 10,\ 11,\ 12,\ 13,\ 14,\ 15,\ \dots

となる。88以上のすべての整数が現れる。表すことができないのは11、22、44、77の四つであり、その最大は77である。

a=3a = 3、b=5b = 5のときab−a−b=15−3−5=7ab - a - b = 15 - 3 - 5 = 7であり、(a−1)(b−1)2=2⋅42=4\dfrac{(a-1)(b-1)}{2} = \dfrac{2 \cdot 4}{2} = 4です。上の観察は、この二つの式と一致しています。以下では、この一致がすべての場合に成り立つことを、証明すべき主張として書き下し、証明します。一つの場合についての計算は予想を立てる手段であって、すべての場合についての証明ではありません。

2 二つの仮定は、どちらも外すことができない

主定理を述べる前に、aaとbbに課す仮定を確認します。二つの仮定は、どちらも外すと「表すことができない最大の数」そのものが存在しなくなります。

注意 2.1 (互いに素であるという仮定).d=gcd⁡(a,b)>1d = \gcd(a,b) > 1とする。ax+byax + byはつねにddで割り切れるので、ddで割り切れない整数は表すことができない。ddで割り切れない整数はいくらでも大きく取ることができるので、表すことができない最大の数は存在しない。たとえばa=4a = 4、b=6b = 6のとき、奇数はどれも表すことができない。

注意 2.2 (どちらも11より大きいという仮定).a=1a = 1とする。このとき、00以上のどの整数nnもn=1⋅n+b⋅0n = 1 \cdot n + b \cdot 0と書くことができるので、すべて表すことができる。したがって、表すことができない最大の数は存在しない。このときab−a−b=b−1−b=−1ab - a - b = b - 1 - b = -1となり、00以上の整数ですらない。b=1b = 1の場合も同じである。

したがって、a>1a > 1かつb>1b > 1という仮定を落とすことはできない。

以下では、aaとbbは互いに素であり、どちらも11より大きいものとします。

3 表すことができない最大の数

定理 3.1 (フロベニウスの硬貨問題).aa、bbをgcd⁡(a,b)=1\gcd(a,b) = 1、a>1a > 1、b>1b > 1を満たす正の整数とする。このとき次が成り立つ。

  1. ab−a−bab - a - bはaaとbbで表すことができない。
  2. ab−a−bab - a - bより大きいどの整数も、aaとbbで表すことができる。

すなわち、ab−a−bab - a - bは、aaとbbで表すことができない最大の整数である。

証明 (ab−a−bab - a - bが表すことができないこと).ab−a−b=ax+byab - a - b = ax + by(x≥0x \ge 0、y≥0y \ge 0は整数)と書くことができたと仮定する。両辺にa+ba + bを加えると

ab=a(x+1)+b(y+1)ab = a(x+1) + b(y+1)

となる。この式から、aaはb(y+1)b(y+1)を割り切る。gcd⁡(a,b)=1\gcd(a,b) = 1であるから、素因数分解の一意性によりaaはy+1y+1を割り切る。y+1≥1y + 1 \ge 1であるからy+1≥ay + 1 \ge aであり、したがってb(y+1)≥abb(y+1) \ge abである。一方、x+1≥1x + 1 \ge 1であるからa(x+1)≥a>0a(x+1) \ge a > 0である。この二つを足すと

ab=a(x+1)+b(y+1)≥a+ab>abab = a(x+1) + b(y+1) \ge a + ab > ab

となるが、ab>abab>abは成り立たない。よってab−a−bab - a - bは表すことができない。▨

証明 (ab−a−bab - a - bより大きい整数が表すことができること).n>ab−a−bn > ab - a - bを満たす整数nnを取る。gcd⁡(a,b)=1\gcd(a,b) = 1であるから、一次不定方程式ax+by=nax + by = nは整数解を持ち、その一般解は、解を一つ(x0,y0)(x_0, y_0)とするとx=x0+btx = x_0 + bt、y=y0−aty = y_0 - at(ttは整数)と書くことができる。

xxをbbで割った余りはttの取り方によらないので、ttを選んで0≤x≤b−10 \le x \le b - 1とすることができる。このxxに対するyyについて、by=n−axby = n - axであり、x≤b−1x \le b-1とn>ab−a−bn > ab - a - bから

by=n−ax≥n−a(b−1)>(ab−a−b)−ab+a=−bby = n - ax \ge n - a(b-1) > (ab - a - b) - ab + a = -b

を得る。b>0b > 0であるからy>−1y > -1であり、yyは整数であるからy≥0y \ge 0である。x≥0x \ge 0もすでに満たされているので、nnはaaとbbで表すことができる。▨

4 表すことができない数の個数

個数を数える議論の出発点になるのは、N=ab−a−bN = ab - a - bについての次の対称性です。

定理 4.1 (表すことができるかどうかの対称性).aa、bbをgcd⁡(a,b)=1\gcd(a,b) = 1、a>1a > 1、b>1b > 1を満たす正の整数とし、N=ab−a−bN = ab - a - bとおく。0≤n≤N0 \le n \le Nを満たすどの整数nnについても、nnとN−nN - nのうち、ちょうど一方がaaとbbで表すことができる。

証明.0≤n≤N0 \le n \le Nを満たす整数nnを取る。n=ax+byn = ax + by、N−n=ax′+by′N - n = ax' + by'(x,y,x′,y′x, y, x', y'はいずれも00以上の整数)と書くことができたとすると、辺ごとに加えてN=a(x+x′)+b(y+y′)N = a(x+x') + b(y+y')となり、定理 3.1の 1 に反する。したがって、nnとN−nN-nの両方が表すことができることはない。

一方、gcd⁡(a,b)=1\gcd(a,b) = 1であるからax+by=nax + by = nは整数解を持ち、前の証明と同じ理由で0≤x≤b−10 \le x \le b-1を満たす整数解(x,y)(x,y)を取ることができる。y≥0y \ge 0であればnnが表すことができる。y≤−1y \le -1であるときは、

N−n=ab−a−b−ax−by=a(b−1−x)+b(−1−y)N - n = ab - a - b - ax - by = a(b - 1 - x) + b(-1 - y)

と変形する。0≤x≤b−10 \le x \le b-1よりb−1−x≥0b - 1 - x \ge 0であり、y≤−1y \le -1より−1−y≥0-1-y \ge 0であるから、N−nN - nが表すことができる。したがって、nnとN−nN-nの少なくとも一方が表すことができる。▨

公式 4.2 (表すことができない00以上の整数の個数).aa、bbをgcd⁡(a,b)=1\gcd(a,b) = 1、a>1a > 1、b>1b > 1を満たす正の整数とする。aaとbbで表すことができない00以上の整数は、ちょうど

(a−1)(b−1)2\frac{(a-1)(b-1)}{2}

個である。

証明.N=ab−a−bN = ab - a - bとおく。定理 3.1より、NNより大きい整数はすべて表すことができる。負の整数は定義の対象ではない。したがって、表すことができない00以上の整数は、00以上NN以下の範囲にある。この範囲にある整数の個数は

N+1=ab−a−b+1=(a−1)(b−1)N + 1 = ab - a - b + 1 = (a-1)(b-1)

である。nnがこの範囲にあればN−nN - nもこの範囲にあるので、n↦N−nn \mapsto N - nはこの範囲の整数の入れ替えを与える。定理 4.1により、nnとN−nN-nのうちちょうど一方が表すことができる。とくにn=N−nn = N - nとなるnnは存在しない。もし存在すれば、そのnnについて「ちょうど一方」が成り立たない。

したがって、00以上NN以下の(a−1)(b−1)(a-1)(b-1)個の整数は、nnとN−nN-nという二つずつの組へ重複なく分かれ、各組から表すことができないものがちょうど一つ出る。よって、表すことができない00以上の整数の個数は(a−1)(b−1)2\dfrac{(a-1)(b-1)}{2}である。▨

例 4.3 (a=4a = 4、b=7b = 7の場合).gcd⁡(4,7)=1\gcd(4,7) = 1であり、どちらも11より大きい。ab−a−b=28−4−7=17ab - a - b = 28 - 4 - 7 = 17であり、(a−1)(b−1)2=3⋅62=9\dfrac{(a-1)(b-1)}{2} = \dfrac{3 \cdot 6}{2} = 9である。

実際、44と77で表すことができない00以上の整数は

1, 2, 3, 5, 6, 9, 10, 13, 171,\ 2,\ 3,\ 5,\ 6,\ 9,\ 10,\ 13,\ 17

の九つであり、その最大は1717である。定理 4.1のとおり、たとえば66が表すことができないことと17−6=11=4+717 - 6 = 11 = 4 + 7が表すことができることが対応し、8=4+48 = 4 + 4が表すことができることと17−8=917 - 8 = 9が表すことができないことが対応する。

前提記事