西川一誠後援会サイト

イッセイエッセイ詳細

イッセイエッセイ

1127号 ニ元一次の不定方程式の整数解を求める(互除法) 92x+197y=1の整数解xとy(その4)

2016年03月19日(土)

【参考】
 ピタゴラスは交互差し引き法(互除法)を使って協和音の数比を発見した後、その数比を用いて世界で最初の音階「ドレミファソラシド」を作っている(ここで使うのは数比であって互除法ではないので、以下は参考とする)。
① ある長さの弦を1として、その長さの弦とその半分の長さの弦を用意する。
② 長いほうの弦が「低いド」の音なら、半分の長さの弦は「高いド」の音になる(弦の長さが1/2になると1オクターブあがるため)。
③ ここから、協和音の数比≪3:2≫を使う。「低いド」の音と≪3:2≫の関係になる音の弦の長さをXとすると、3:2=1:XからX=2/3となる。つまり「ド」の音の弦の長さの2/3の長さになる。
④ 次に③で求めた音に対しさらに≪3:2≫の関係をあてはめる。そうして見つかる弦の長さをYとすると、3:2=(2/3):YからY=4/9となる。 この4/9は初めの弦の長さの1/2よりも短くなるので、「低いド」と「高いド」の間におさめるために、4/9×2と倍の長さにして8/9とする。倍の長さにした結果、その音は1オクターブ下がるため、「高いレ」の音が「低いレ」になる。
⑤ さらに≪3:2≫の関係にあてはめる。
⑥~⑦ そして、繰り返してどんどん音を求めていく。
⑧ さらにこの方法では、≪3:2≫の関係を繰り返しても最初の音とオクターブ≪2:1≫の関係にある音は作れないという問題が残る(2と3が素数である以上、3の累乗が2の累乗と一致することはないため)。したがって、この誤差を1音階の中に押し込んで、最後の1音だけは「高いド」から求めることとする。「高いド」と≪3:2≫の関係にある音の弦の長さをZとすると、「高いド」より長くないといけないので、Z:1/2=3:2からZ=1/2÷2/3=3/4で「ファ」の音となる。
 ここまでにできた弦の長さを、「低いド」から順に並べると、下表のとおり「ピタゴラスの音階」ができあがる。

 ちなみに、≪3:2≫の関係をあと5回繰り返すと「ファ♯、ド♯、ソ♯、レ♯、ラ♯」の5個の音(ピアノの黒盤の出す音)が表れる。これでオクターブの中の12個の音が表れた。

 以下、≪3:2≫の関係と≪2:1≫の関係の繰り返しですべての音が表れる理由を数学的に探ってみる。
 そこで、弦の長さ(分数)をそのまま使うのでは数学的にわかりにくいので、オクターブを構成する12音(半音階12個からなる)を使って作業を単純化する。
 なお、前述から≪3:2≫の関係が7音(「低いド」→「ソ」)あげる作業、≪2:1≫の関係がオクターブすなわち12音(「高いレ」→「低いレ」)さげる作業だ、ということがわかっている。
 そのうえで、7音あげる作業x回と12音あげる作業y回(y<0ならさげる)で1音(半音階1個)あげる作業を表せることが言えればよい。
 なぜなら、1音ずつ積み上げれば12個すべての音が表れるのは当然なので、結局、1音あげる×z倍= (x×7音あげる+y×12音あげる) ×z倍となり、すべての音が表せることがいえるからである。
 そのために、右辺が1(半音階1個を表わす、つまり「ド♯」の音に相当)となる場合を考える。すると「7x+12y=1」という式が立ち、後述するが、7と12が互いに素であることに気づけば、この式を満たす整数x、yは必ず存在することがわかる。
 あとは、互除法を用いて、
   12=7×1+5 ⇔ 5=12-7×1 …①
   7=5×1+2 ⇔ 2= 7-5×1 …②
   5=2×2+1 ⇔ 1= 5-2×2 …③
   7x+12y=1=5-2×2 (③式から)
        =5-(7-5×1)×2   = 5×3-7×2 (←②式から)
        =(12-7×1)×3-7×2 =12×3-7×5 (←③式から) …④
   ∴7x+12y=12×3-7×5
    7(x+5)=12(3-y)
 この式が成立するためには、x+5=12k、3-y=7k(kは整数とする)となり、この式の整数解は、x=12k-5、y=3-7k である。
 これは、「ド♯」を出す場合、xが一番小さい(つまり最も少ない回数で出す)ときは、k=1のときなので、(x、y)=(7、-4) 7回あげて4回さげる。
 この結果を利用して、たとえば「レ」の音を考える。「レ」は最初の音「ド」から2音(半音階が2個)あがっているので、右辺を2倍すると、
   7x+12y=2=2×(12×3-7×5) (←④式から)
   7(x+10)=12(6-y)
 よってx+10=12k、6-y=7kとなり、
 整数解は、x=12k-10、y=6-7k となる。
 xが一番小さいときは、k=1のときなので、(x、y)=(2、-1)
 これで、7音上げる作業2回とオクターブ(12音)さげる作業1回で「レ」の音が表れることが説明できる。

(2016.2.28~3.18 記)