それでは,
[Q]aグラムとbグラムのおもりがたくさんあるとき,どんな重さを計ることができるのだろうか?
[A]d=gcd(a,b)とすると
[1]ax+by=dは整数解をもつ.
[2]ax+by=nが整数解をもつならな,nはdの倍数である.
すなわち,計れる重さの最小数が最大公約数であって,その倍数全体を計ることができるのである,ただし,おもりの選び方は1通りでないことに注意.たとえば,a=22,b=15の場合,
6=22×(−12)+15×18=22×3+15×(−4)
一般に1組の特殊解を(x0,y0)とすると,一般解は
x=x0−bt/d,y=y0+at/d
で与えられる.もし,使用するおもりの数を最小にしたいならば,
|x{+|y|=|x0−bt/d|+|y0+at/d|
の最小値を求めればよい.
[Q]aグラムとbグラムとcグラムのおもりがたくさんあるとき,どんな重さを計ることができるのだろうか?
という問題では
[A]d=gcd(a,b,c)とすると
[1]ax+by+cz=dは整数解をもつ.
[2]ax+by+cz=nが整数解をもつならな,nはdの倍数である.
すなわち,2種類のおもりの場合と同様の結果が成立する.
[Q]a円玉とb円玉を用いてn円支払えるための条件を求めよ.
という問題では,
[A]nはd=gcd(a,b)の倍数,x,yは非負整数.したがって,x,yが存在するための条件は
x=x0−bt/d≧0,y=y0+ct/d≧0
というtに関する連立不等式を解けばよい.結局,区間
[−y0d/a,−x0d/b]
が整数を含めばよいことになる.
===================================
【1】2元1次形式による表現とシルヴェスターの定理
互いに素な2つの整数a1,a2が与えられたとき,非負整数が存在して
m1a1+m2a2=n
が成り立つことは,硬貨の言葉に置き換えるとa1円玉とa2円玉を用いてn円が支払えることを意味する.どの額が支払えるか,支払えない最高額はいくらかという問題が考えられるところである(この問題はフロベニウスの硬貨交換問題と呼ばれる).
支払えない最高額をフロベニウス数と呼び,g(a1,a2)で表される.
g(a1,a2)=a1a2−a1−a2=(a1−1)(a2−1)−1
で与えられ,1と(a1−1)(a2−1)の間にある整数のちょうど半数が表現可能である.
たとえば,a1=4,a2=7の場合,g(a1,a2)=17で,表現不可能な整数の数は(a1−1)(a2−1)/2=9となる.
シルヴェスターの定理の証明は母関数
f(z)=1/(1−z^a1)(1−z^a2)z^n
の定数項と関連しているが,硬貨が3枚以上になると格段複雑になり,n元1次形式に対する公式はほとんど成功しなかった.
[参]ベック,ロビンズ「離散体積計算による組合せ数学入門」シュプリンガー・ジャパン
===================================