7を法とする世界で考えよう。7を法とすると、
02 = 0 ≡ 0
12 = 1 ≡ 1
22 = 4 ≡ 4
32 = 9 ≡ 2 (9を7で割ると2余る)
42 = 16 ≡ 2 (16を7で割ると2余る)
52 = 25 ≡ 4 (25を7で割ると4余る)
62 = 36 ≡ 1 (36を7で割ると1余る)
となっているので、この世界では、0, 1, 2, 4 が平方数だ。
また、3, 5, 6 は平方数でない。「7を法とする平方数」「7を法とする平方数でない数」のことを、
「7の平方剰余」「7の平方非剰余」というのだが、言葉遣いが難しいと分かりにくくなるので、ここでは「平方数」で通す。
以下で説明する平方剰余の相互法則は、古典的整数論においては「基本」であると同時に「数の神秘」であり、ひとつの山場ともなっている。 イデアル論の立場からは別に神秘的でなく透明に理解することができるので、二次体を導入してから平方剰余の相互法則に進むのが現代的かもしれない。 しかし、平方剰余の相互法則の意味そのものは中学生にも理解できる。 巨大素数を扱う暗号学の立場からは、相互法則はヤコビ記号を使うソロベイ・ストラッセン・テストの基礎となっている。 確率的素数判定であるから、このテストをすりぬける「オイラー擬素数」の概念も生じる。
RSA暗号系から派生したネタとして、 フェルマーの小定理と擬素数、ラビン・ミラーのテストと強擬素数についてすでに書いた。 これらは暗号システムそのものというより「どうやって暗号に使う巨大素数を用意するのか」という下準備のような話だった。 話のついでなので、擬素数つながりで、ソロベイ・ストラッセン・テストとオイラー擬素数にもふれよう。 そのため、今回は平方剰余の相互法則を導入しておく。次回ルジャンドル記号とヤコビ記号を導入してオイラー擬素数まで行く予定だ。 なお、ここでは具体例の観察だけで証明はつけないので、詳しくは将来、自分で勉強してほしい。
上でみたように、7を法とすると、0, 1, 2, 4 は平方数、3, 5, 6 は平方数でない。このことを次のように略記しよう:
0 R 7
1 R 7
2 R 7
4 R 7
3 N 7
5 N 7
6 N 7
a R b とは x2≡a (mod b) を満たす x が存在するということであり、 a N b とは x2≡a (mod b) に解がないことを言っている。
第一の例から分かるように、13を法として4が平方数か?ということと17が平方数か?ということは、同じ意味になる。 4≡17 (mod 13) だからだ。つまりAが平方数かどうか?と尋ねているとき、実際にはAという特定の数について尋ねているというより、 Aと合同なすべての数から成る集合(剰余類)について尋ねている、と考えても良い。
ところで、さらによく観察すると、この場合、1の平方と16の平方は等しく、2の平方と15の平方は等しく……以下同様に、
nの平方と(17-n)の平方は等しくなっている注1。これは当たり前のことで、
(17-n)2 = 172 - 2·17·n + n2 ……①
の右辺第一項、第二項は17で割り切れるので、17で割った余りという観点ではこれらは0に等しく、
(17-n)2 ≡ n2 (mod 17)
だからだ。ということは、1の二乗、2の二乗……と計算していくと、半分の17/2より先では新しいものは出ない。
言い換えれば、上の計算結果では、0は別にして、右辺には同じ数がぜんぶ2回ずつ現れる。
したがって、17を法とする世界では、すべての元が平方数ということは不可能で、0を除外した16個の要素のうち半分が平方数、
残りの半分が非平方数だ注2。実際、上の結果から、0は別にして、1, 2, 4, 8, 9, 13, 15, 16 の8個が平方数である。
法が17でなくても①と同様の式は成り立つので、かたっぱしから調べるにしても法の半分までで止めて良い。
注1: 正確な用語を使えば「等しい」のではなく「合同」だが、わざとぼかしている。
注2: 平方と非平方の個数が半々になることをきちんと言うには、1以上・法/2以下の二つの数 a, b について、a2≡b2 ⇔ a=b を証明する必要がある。実際には、法が素数ならこれが成り立つ。
ここで、与えられた整数 a が b を法として平方数になるかならないか、ちからまかせに調べる関数をとりあえず作っておく。
function test( a, b ) { a %= b; for( var i=0; i <= b/2; i++ ) { if( i*i % b === a ) return "R"; } return "N"; }
この関数は、与えられた2数 a, b について、a R b なら "R" を返し、 a N b なら "N" を返す。
与えられた2つの数 a, b が、a R b であるか a N b であるか。 つまり、a は平方数 (mod b) であるかどうか。 あとから説明するように、a, b はともに3以上の素数と仮定して良い。 それ以外の場合も、3以上の素数の計算に帰着させられるからだ。
a, b を3以上の素数として、a R b なのか a N b なのか一覧表を作ってみよう。 とりあえず20未満の範囲で実行する。
var Primes = [ 3, 5, 7, 11, 13, 17, 19 ]; var d = document; d.write("<table>"); for( var i = 0; i < Primes.length; i++ ) { var a = Primes[i]; d.write("<tr>"); for( var j = 0; j < Primes.length; j++ ) { var b = Primes[j]; if(test(a,b)=="R") d.write( "<td style='background:#cff'>" + a + "R" + b + "<\/td>"); else d.write( "<td style='background:#fcc'>" + a + "N" + b + "<\/td>"); } d.write("<\/tr>\n"); } d.write("<\/table>");
3R3 | 3N5 | 3N7 | 3R11 | 3R13 | 3N17 | 3N19 |
5N3 | 5R5 | 5N7 | 5R11 | 5N13 | 5N17 | 5R19 |
7R3 | 7N5 | 7R7 | 7N11 | 7N13 | 7N17 | 7R19 |
11N3 | 11R5 | 11R7 | 11R11 | 11N13 | 11N17 | 11R19 |
13R3 | 13N5 | 13N7 | 13N11 | 13R13 | 13R17 | 13N19 |
17N3 | 17N5 | 17N7 | 17N11 | 17R13 | 17R17 | 17R19 |
19R3 | 19R5 | 19N7 | 19N11 | 19N13 | 19R17 | 19R19 |
この表を観察すると、左上から右下への対角線にそって、だいたい対称になっている。 a R b なら b R a 、a N b なら b N a であることが多いようだが、多少、例外もある。 この問題をハッキリさせるため、次の形式で表を出力してみる。
var Primes = [ 3, 5, 7, 11, 13, 17, 19 ]; d.write("<table>"); for( var i = 0; i < Primes.length; i++ ) { var a = Primes[i]; for( var j = 0; j < i; j++ ) { d.write("<tr>"); var b = Primes[j]; if(test(a,b)=="R") d.write( "<td style='background:#cff'>" + a + "R" + b + "<\/td>"); else d.write( "<td style='background:#fcc'>" + a + "N" + b + "<\/td>"); if(test(b,a)=="R") d.write( "<td style='background:#cff'>" + b + "R" + a + "<\/td>"); else d.write( "<td style='background:#fcc'>" + b + "N" + a + "<\/td>"); d.write("<\/tr>\n"); } } d.write("<\/table>");
5N3 | 3N5 |
7R3 | 3N7 |
7N5 | 5N7 |
11N3 | 3R11 |
11R5 | 5R11 |
11R7 | 7N11 |
13R3 | 3R13 |
13N5 | 5N13 |
13N7 | 7N13 |
13N11 | 11N13 |
17N3 | 3N17 |
17N5 | 5N17 |
17N7 | 7N17 |
17N11 | 11N17 |
17R13 | 13R17 |
19R3 | 3N19 |
19R5 | 5R19 |
19N7 | 7R19 |
19N11 | 11R19 |
19N13 | 13N19 |
19R17 | 17R19 |
(7, 3), (11, 7), (19, 3), (19, 7), (19, 11) の組み合わせでは、 式の2つの数字を入れ替えると R か N か?の性質が変わる。 これらの数が入っていても、(7, 5) や (13, 7) は問題なく交換できている。 同じ素数でも、5, 13, 17 が入っている場合は交換法則が成り立ち、3, 7, 11, 19 同士では成り立たない。 いま、5, 13, 17 を「バニラ素数」と呼び、 3, 7, 11, 19 を「チョコレート素数」と呼ぶと、
交換できない、といっても、では予想がつかない結果になるのか?というと、そうではなく、 ここで「交換できない」という意味は、a R b なら b N a になり、a N b なら b R a になるということ、 つまり R と N が正確に入れ替わることを意味している。
5, 13, 17, ... のような「バニラ素数」の正体は、4で割って1余る素数であり、 3, 7, 11, 19, ... の「チョコレート素数」は4で割って3余る素数だ。 (素数なので4で割れば必ず余りが出る。2を除外して奇数を考えているので、4で割って2余ることはなく、必ず1か3余る。) 目で見て分かりやすくするために、バニラ素数とチョコレート素数を区別して表示させてみよう。
function display( a, b ) { var test1 = test( a, b ); var test2 = test( b, a ); var A = flavor( a ); var B = flavor( b ); if( test1 === "R" ) { d.write('<td style="background:#cff">' + A + 'R' + B + '<\/td>'); } else { d.write('<td style="background:#fcc">' + A + 'N' + B + '<\/td>'); } if( test2 === "R" ) { d.write('<td style="background:#cff">' + B + 'R' + A + '<\/td>'); } else { d.write('<td style="background:#fcc">' + B + 'N' + A + '<\/td>'); } if( test1 === test2 ) { d.write('<td style="background:#fff; color:green">入れ替えても同じ<\/td>'); } else { d.write('<td style="background:#ffd; color:red; font-weight:bold">入れ替えると逆転<\/td>'); } if( a % 4 === 1 || b % 4 === 1 ) { d.write('<td style="background:#fff; color:blue">バニラを含む<\/td>'); } else { d.write('<td style="background:#ffd; color:maroon; font-weight:bold">チョコレート同士<\/td>'); } } function flavor( n ) { if( n % 4 === 1 ) return '<em style="color:blue; background:white">' + n + '<\/em>'; else return '<strong style="color:maroon">' + n + '<\/strong>'; } var Primes = [ 3, 5, 7, 11, 13, 17, 19, 23, 29 ]; d.write('<table>'); d.write('<tr><th>元の式<\/th><th>入れ替えた式<\/th><th>R か N か<\/th><th>式の内容<\/th><\/tr>\n'); for( var i = 0; i < Primes.length; i++ ) { var a = Primes[i]; for( var j = 0; j < i; j++ ) { d.write("<tr>"); var b = Primes[j]; display( a, b ); d.write("<\/tr>\n"); } } d.write("<\/table>");
元の式 | 入れ替えた式 | R か N か | 式の内容 |
---|---|---|---|
5N3 | 3N5 | 入れ替えても同じ | バニラを含む |
7R3 | 3N7 | 入れ替えると逆転 | チョコレート同士 |
7N5 | 5N7 | 入れ替えても同じ | バニラを含む |
11N3 | 3R11 | 入れ替えると逆転 | チョコレート同士 |
11R5 | 5R11 | 入れ替えても同じ | バニラを含む |
11R7 | 7N11 | 入れ替えると逆転 | チョコレート同士 |
13R3 | 3R13 | 入れ替えても同じ | バニラを含む |
13N5 | 5N13 | 入れ替えても同じ | バニラを含む |
13N7 | 7N13 | 入れ替えても同じ | バニラを含む |
13N11 | 11N13 | 入れ替えても同じ | バニラを含む |
17N3 | 3N17 | 入れ替えても同じ | バニラを含む |
17N5 | 5N17 | 入れ替えても同じ | バニラを含む |
17N7 | 7N17 | 入れ替えても同じ | バニラを含む |
17N11 | 11N17 | 入れ替えても同じ | バニラを含む |
17R13 | 13R17 | 入れ替えても同じ | バニラを含む |
19R3 | 3N19 | 入れ替えると逆転 | チョコレート同士 |
19R5 | 5R19 | 入れ替えても同じ | バニラを含む |
19N7 | 7R19 | 入れ替えると逆転 | チョコレート同士 |
19N11 | 11R19 | 入れ替えると逆転 | チョコレート同士 |
19N13 | 13N19 | 入れ替えても同じ | バニラを含む |
19R17 | 17R19 | 入れ替えても同じ | バニラを含む |
23N3 | 3R23 | 入れ替えると逆転 | チョコレート同士 |
23N5 | 5N23 | 入れ替えても同じ | バニラを含む |
23R7 | 7N23 | 入れ替えると逆転 | チョコレート同士 |
23R11 | 11N23 | 入れ替えると逆転 | チョコレート同士 |
23R13 | 13R23 | 入れ替えても同じ | バニラを含む |
23N17 | 17N23 | 入れ替えても同じ | バニラを含む |
23R19 | 19N23 | 入れ替えると逆転 | チョコレート同士 |
29N3 | 3N29 | 入れ替えても同じ | バニラを含む |
29R5 | 5R29 | 入れ替えても同じ | バニラを含む |
29R7 | 7R29 | 入れ替えても同じ | バニラを含む |
29N11 | 11N29 | 入れ替えても同じ | バニラを含む |
29R13 | 13R29 | 入れ替えても同じ | バニラを含む |
29N17 | 17N29 | 入れ替えても同じ | バニラを含む |
29N19 | 19N29 | 入れ替えても同じ | バニラを含む |
29R23 | 23R29 | 入れ替えても同じ | バニラを含む |
バニラ素数同士や、バニラ素数とチョコレート素数は、ひっくり返しにしても R ないし N の性質は変わらないが、 チョコレート素数同士の場合、ひっくり返しにすると R だったものは N に、N だったものは R に変わる。 以上が「平方剰余の相互法則」の内容だ。
2つの素数 p, q について、
x2 ≡ p (mod q) …… ①
が解を持つかどうか?は、ひっくり返した
x2 ≡ q (mod p) …… ②
が解を持つかどうか?と神秘的な関係にある。
すなわち、p, q が両方とも ≡3 (mod 4) 型の素数であるときには、 ①と②のどちらか一方にのみ解があり、他方には解がない(つまり、①と②は「解を持つか持たないか」という属性が逆になる)。 p または q の少なくともどちらか一方が ≡1 (mod 4) 型の素数であれば、 ①と②はどちらも解を持つか、または、どちらも解を持たない(つまり、①と②は「解を持つか持たないか」という属性が一致する)。
x2 ≡ 3 (mod 23977) …… ① には解があるか?
答: 3はチョコレート素数だが、もう一方の数23977は4で割ると1余り、バニラ味だ。
したがってひっくり返しても判定結果は変わらない。
x2 ≡ 23977 (mod 3) …… ② には解があるか?
23977≡1 (mod 3) だから、要するに
x2 ≡ 1 (mod 3) には解があるか?
と尋ねている。ということは ② には x = 1 という解があるので、①にも解がある。
ちなみに、①の具体的な解は 6033であり、60332 = 36397089 を 23977 で割ると3余る。 ソロベイ・ストラッセン・テストによる素数性判定では、①の形の式を実際に解く必要はなく、単に解があるかないかだけ知りたい。 したがって泥臭い数値計算をする必要はなく、今回説明した平方剰余の相互法則と、次回以降に説明するヤコビ記号の性質によって、 高速に判定を実行できる。 なお、両方とも4で割って3余る形の数でも、 判定のアルゴリズム上、支障はない。 その場合、ひっくり返すと「平方数か平方数でないか?」の性質が入れ替わる。
"</td>"
を "<\/td>"
に修正(6カ所)。「古典シリア語の数詞の1~10」を覚えるための数え歌。
歌詞は「ばびっと数え歌」専用ではなく、Ḥaḏ — Trēn の行を省けば「ごんべさんの赤ちゃんがかぜひいた/おたまじゃくしはカエルの子/まあるい緑の山手線」のメロディーでも歌えます。その場合、行の前半末尾が7音のものは【ごんべ版】のように5音に縮めてください。「ともだち讃歌」風にも歌えますが、その場合は【ともだち版】のように偶数の数字の歌詞の末尾も短縮してください。
母音記号の付け方はカラバシ方式。
(1) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — Ḥaḏ
ܚܰܕ (ḥaḏ) ハードに息を吐く 初めの一歩はモーマンタイ
(2) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — Trēn
ܬܪܶܝܢ (trēn) TRAIN 電車に乗って 二人で旅行は楽しいな
【ごんべ版】 ܬܪܶܝܢ (trēn) TRAIN 汽車の旅 二人で旅行は楽しいな
【ともだち版】 ܬܪܶܝܢ (trēn) TRAIN 汽車の旅 二人で旅行 (ハッド トレーン!)
(3) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — Tlāṯā
ܬܠܳܬ̥ܐ (tlāṯā) トラ(L)~サ(th)~ このつらさ さんざん数詞にゃ苦労する
(4) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — ʾArbʕā
ܐܰܪܒܥܐ (ʾarbʕā) あるバー やけ酒飲むぞ 4時から酔っぱらって良いご身分
【ごんべ版】 ܐܰܪܒܥܐ (ʾarbʕā) あるバー やけ酒だ 4時から酔ってる良いご身分
【ともだち版】 ܐܰܪܒܥܐ (ʾarbʕā) あるバー やけ酒だ 4時から酔っちゃった (ハッド トレーン!)
(5) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — Ḥamšā
ܚܰܡܫܐ (ḥamšā) ハムシャー ハムスター 5匹のハムしゃ~ かわいいな
(6) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — Štā
ܫܬܐ (štā) だ シュターだ ロックシュター(ロックスター) ロックシュターはろくろ首
【ともだち版】 ܫܬܐ (štā) だ シュターだ ロックシュター ろくろ首 (ハッド トレーン!)
(7) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — Šaḇʕā
7時に ܫܰܒܥܐ (šaḇʕā) を浴びました シャヴシャヴ シャヴア゙ー(シャワー)を浴びました
(8) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — Tmānyā
8時のテレビは ܬܡܳܢܝܐ (tmānyā) (つまんねえや) 女優が出ても ܬܡܳܢܶܐ (tmānē)
【ともだち版】 8時のテレビは ܬܡܳܢܝܐ (tmānyā) (つまんねえや) 女優も ܬܡܳܢܶܐ (tmānē) (ハッド トレーン!)
(9) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — Tešʕā
9時は眠いぞ 茶を飲むぞ 茶こしがないから ܬܶܫܥܐ (tešʕā) あ゙~ (※「ティッシュで代用したら失敗」という意味)
(10) Ḥaḏ — Trēn — Ḥaḏ, trēn, tlāṯā — ʕesrā
とうで とうとうラスボス出たぞ ܥܶܣܪܐ (ʕesrā) デスラー 好敵手
【ごんべ版】 とうとうラスボス おでましだ ܥܶܣܪܐ (ʕesrā) デスラー 好敵手
【ともだち版】 とうとうラスボス 好敵手 ܥܶܣܪܐ (ʕesrā) デスラー (ハッド トレーン!)
37桁の 1,000,000,000,000,000,000,000,000,000,000,000,000(=1澗)までの数え歌。日本語・英語・SI接頭辞・2進数付き。
𥝱(じょ)と穣(じょう)が違うってのが、紛らわしい!
一巻の終わりッ!
京(ケイ)は京浜(ケイヒン=東京と横浜)の京、東京・京都の京。「都、中心都市」という意味なので、転じて「巨大」という意味になったのだろう。1兆の1万倍。
垓(ガイ)は「土地の境界」。巨大な「京」の果て。1兆の1億倍。偏は違うが、該博(ガイハク)という言葉がある。「とても広い知識」という意味。
予(ヨ)の形は「ジョ」と読まれることがある⸺「序」のように。𥝱もそのパターン。𥝱(ジョ)は秭(シ)とも呼ばれる。「𥝱」は「秭」の書き間違いから生まれた文字らしい。本来の文字「秭」のつくり・読みは、「姉」(あね・シ)の異字体「姊」(シ)と同じ。「のぎへん」なので「稲のようなものがいっぱいある場所」を指したのかも。1兆の1兆倍。1の後ろに0が24個付き、ちょうど one septillion = 1000 × 10007 に当たる。
穣(ジョウ)は「豊穣」の穣。稲のようなものがたわわに実り、穀物の粒がたくさんあるのだろう。1兆の1兆倍の「𥝱」のそのまた1万倍。
都は広大、郊外の農地はさらに広大かもしれないが、地殻レベルの凹凸は桁が違う。溝(コウ)は海溝・地溝の溝。「みぞ、谷」を表す。1兆の1兆倍の「𥝱」のそのまた1億倍。
澗(カン)は、さんずいに「間」と書いて「山の間を流れる水」。谷も大きく深いだろうが、そこを流れる谷川の水(澗水=カンスイ)となると、さらに時間の要素が加わる――海へと注ぎ、蒸発して雲となり、再び山に降るという循環を何万年も繰り返しているのだから。1兆の1兆倍のそのまた1兆倍。1の後ろに0が36個付き、ちょうど one undecillion = 1000 × 100011 に当たる。
1016=京(大きな都) → 1020=垓(最外周の境界・該博) どちらも土地に関係
1024=𥝱(穀物の畑) → 1028=穣(穀物が実った・豊穣) どちらも、のぎへん
1032=溝(大きな谷) → 1036=澗(谷を流れる水・澗水) どちらも、さんずい
次は…シリア語編だよ。
「ごんべさんの赤ちゃん」のメロディーで。「単位円」=「半径1の円」。
まあるい緑の単位円 半径 斜辺の三角形 「高さ」の「さ」の字はサインの「サ」 サインは 対辺 高さ |
|
「よこ」の「こ」の字のコ・サイン 角度のすぐ横 隣辺は 角度がゼロでも極大値 やる気まんまん ゴーサイン |
|
「かなた」の「た」の字のタンジェント 垂直接線 その交点 値はワイドに無制限 対÷隣辺 サイン÷コス |
直角三角形の斜辺以外の2辺のうち、「考えている角度 θ のある場所」につながっている辺が隣辺。「θ のある場所」の向かい側にある辺が対辺。
サインとコサインは、それぞれ「斜辺を 1 としたときの対辺・隣辺の長さ」に当たる。
直角三角形 OTP にピタゴラスの定理(三平方の定理)を当てはめると、θ の値が何であっても (cos θ)2 + (sin θ)2 = 1 が成り立つ。慣習として (cos θ)2、(sin θ)2 は、それぞれ cos2 θ、sin2 θ と書かれることも多い。tan2 θ なども同様で、(tan θ)2 と同じ意味。
タンジェントは、斜辺の傾き。「その線上では、x-座標が☆☆増えるとき、y-座標がこれだけ増える」という割合。「y がこれだけ増えますよ」という増加量を、☆☆(いわば増加の所要時間)で割った比(増加の速さ)。つまりタンジェントは「対辺÷隣辺」で、「サイン÷コサイン」ともいえる。
タンジェントを純粋に「サイン÷コサイン」と考えると TP / OT だが、3番目の画像の △OPT と △OQA は相似なので、AQ / OA でも同じ比になる。OA = 1 なので、AQ / OA は AQ そのもの。「tan θ というのは、この青い部分」とイメージできる。
サインとコサインは単位円上の座標なので、[−1, +1] の範囲から抜けられない。タンジェント(3番目の画像の青い部分)は円の外にあるので、無限に大きくなることができる(負の無限大に向かうこともできる)。
単位円を使った普通の定義では「コサイン=横=横方向」だが、むしろ「コサイン=横=角度のすぐ横=隣辺」と考えた方がいい。例えば ∠OPT を α とすると cos α = PT。見掛け上 PT は縦方向だけど、α に隣接している。
θ(シータ)が 45° のとき、OP を斜辺とする直角三角形は…。三角形の内角の和は 180° だから、直角以外のもう1個の角も 45° になるはず。二等辺三角形だ。
この場合、「高さ」 TP と「よこ」 OT は等しい。sin θ(サイン・シータ)の定義はこの「高さ」、cos θ(コサイン・シータ)の定義は「よこ」。言い換えれば、点 P の x-座標と y-座標。その二つが等しいのだから:
ピタゴラスの定理によって:
sin 45° と cos 45° は等しいので、それらの平方、つまり (sin 45°)2 と (cos 45°)2 も等しい。値が等しくて、足すと 1 になるんだから、それぞれ 1/2 のはず。
2乗すると 1/2 になる数。それは ±√(1/2)。この場合、点 P の x-座標と y-座標はプラスなので、符号はプラスだろう:
(☆) と (★) は同じ意味。
ところで AQ も大きな二等辺三角形の一辺になっていて、OA = 1 と長さが等しい。このことから、tan 45° = 1 は一目瞭然。sin 45° = cos 45° からも、tan 45° = sin 45° / cos 45° = 1 と結論できる。
θ = ∠AOP = 30° とする。△TPE が正三角形になるように OP 上に点 E を書き込むと、△OET は二等辺三角形。このことから、sin 30° = TP は、半径 OP = 1 のちょうど半分。つまり:
ピタゴラスの定理を利用して:
タンジェントの値は:
三角関数には他にも種類がある。以下の三つは「逆数に名前を付けただけ」だが、時には役立つこともある。
セカント 「セ」の字は「延ばせ」の「せ」 半径延ばしたその長さ だから 絶対(絶対値)1以上 後ろに延ばせばマイナス |
|
「コ」タンジェントに「コ」セカント 「コ」のない兄貴の横バージョン 水平接線 その交点 横と斜めの長さ |
「まあるい緑の単位円 (三角関数覚え歌)」の続き。「ごんべさんの赤ちゃん」のメロディーで。「アルファさんとベータさんが麦畑」でもOK。
【距離の2乗】 α と β が角引いた PQ平方 ピタゴラス マイナスくくって 中 プラス 2引く 2掛け「ここ・さっさ」 |
|
【距離2乗 再計算】 マイナス β 大回転 点Q (1, 0) こりゃ楽ちん PQ平方 再計算 2引く 2掛け「差の余弦」 |
|
【和・差の cos】 和・差の余弦は「ここ・さっさ」 4限が終われば飯さっさ 「ここ」で符号を入れ換えて あとは「さっさ」と 済まそ |
|
【和・差の sin】 サインは「余角のコ・サイン」 「余角のサイン」はコ・サイン 和・差のサインが欲しいとき 最高! コスプレ・サイン会 |
|
【和・差の tan】 角度の和・差のタンジェント 正弦・余弦の商でしょう 分子と分母を書き込んで 「ここ」で割ったら できちゃった |
√6 の近似値は 2.449、√2 の近似値は 1.414。これらを使うと:
角度の絶対値が小さいとき、コサインは 1 に近い。コサインの定義から、当然そうなるだろう。
角度の絶対値が小さいとき、サインは 0 に近い…ことは確かだが、「コサインが 1 に近い」ほどの近さではない。サインもコサインも、値 ±1 付近では緩やかに変化し、値 0 付近では急激に変化する。どのくらい急激かというと…。90° かけて 値が 0 から 1 まで増えるのだが、30° でもう 50% 地点。たった 15° で、既に 25% を超えている!
正弦の加法定理の、角 α と角 β が等しい場合を考えてみよう。
α = β = x とすると:
余弦の加法定理で、同じことをやってみよう。
α = β = x とすると:
ここで cos2 x というのは、 (cos x)2 と同じ意味。sin2 x も同様。
ピタゴラスの定理 cos2 x + sin2 x = 1 の左辺の項を1個だけ移項すると、こうなる。
(P1) を (2A) に代入すると:
(P2) を (2A) に代入すると:
正接の加法定理で α = β = x とすると、正接の倍角の公式が得られる:
(1) ÷ (2A) の分数を考えて、その右辺の分子・分母を cos2 x で割っても、(3) が得られる。
sin x や cos x を tan (x/2) で表現すると、役立つ場面がある。倍角の公式から、そのような表現を導くこともできる。
まず、ピタゴラスの定理 cos2 x + sin2 x = 1 の各項を cos2 x で割ると:
上の図で sec は OQ、tan は AQ。ピタゴラスの定理から OA2 = 1 と tan2 の和は、確かに sec2 になる。
sin の倍角の公式の右辺を「分母が 1 の分数」と見なして分子・分母を cos2 x で割り、上記 (P3) を使うと:
同様に、cos の倍角の公式と (P3) から:
〔注〕 tan x が定義されない場合(同じことだが cos x = 0 の場合)には (3), (P3), (4), (5) は意味を持たない。
(4) と (5) の 2x をあらためて θ と置き、さらに tan x = tan (θ/2) を u と書くと:
「分母が 1 の分数」うんぬんはトリッキー。次のように考えた方が自然だろう。
つまり:
問題は、右端の cos2 x を tan x を使ってどう書き換えるかだが、上記 (P3) により cos2 x と tan2 x の関係は分かっている。 cos2 x = 1 / sec2 x なので…
同様に「sin を cos で割りたい」という方向性を意識すると:
次のようにすれば、倍角の公式を使わずにこの関係を導くことができ、幾何学的意味もはっきりする。
[1] 原点 O を中心に、緑の単位円(半径1の円)があるとする。座標 (−1, 0) の点 C、緑の単位円上の点 P、その2点を結ぶ青い直線を考えよう。ここでは P が第1象限にあるとする(それ以外の場合についても、同様に考えることができる。P と C が一致する場合だけは具合が悪い)。△COP は二等辺三角形。∠COP = (180° − θ) に注意すると、この二等辺三角形の、二つの底角の和は θ。従って、1個の底角は θ/2。∠OCP = θ/2 となる。
[2] 青い直線 CP と y-軸の交点を D とする。C を中心とする別の単位円を考えると、y-軸は、この単位円に接する垂直線となり、タンジェントの意味から、OD は tan (θ/2) に等しい。この赤い部分の高さを u = tan (θ/2) としよう。この u は、青い直線の傾きでもある(x = −1 から x = 0 までで、y が u 増加している)。
[3] 青い直線の方程式は、こうなる(傾きが u で、x = 0 のとき y = u だから)。
点 P の座標を (p, q) としよう。点 P も青い直線上にあるので、その座標値は (6) を満たす:
[4] △OTP についてのピタゴラスの定理から:
(7) と (8) を組み合わせれば、p, q を u で表すことができる。p = cos θ, q = sin θ なので、結局、半角のタンジェント u = tan (θ/2) を使って cos θ, sin θ を書き表すことができる。
(7) を (8) に代入すると:
(*) は p についての2次方程式で、その解は (7) と (8) を同時に満たす点(要するに、青い直線と緑の円の交点)の x-座標。これを解くと:
「±」のうち、マイナスを選択すると p = −1 になるが、これは点 C の x-座標に当たる。点 C も確かに直線と円の交点だが、知りたいのはそっちではなく、点 P の座標。プラスを選択しよう:
これで p = cos θ が u = tan (θ/2) で表された。
付記: (*) を解くとき、分子・分母を最初から半分にして、根号の中を4分の1にする方法もある。
[5] q を求めるため、(**) を (7) に代入しよう。
これで q = sin θ も u で表された。
[6] 半角の公式は下記 [9] の代数計算により簡単に導かれるが、幾何学的に考えれば、その意味はさらに明快。図で直角三角形 TCP と ∠C に注目しよう。対辺 TP の長さは q = sin θ。隣辺 CT の長さは、CO + p つまり 1 + cos θ。従って、タンジェントの意味から:
ただし θ = ±180° の場合、この式は両辺とも定義されない。θ = 0° の場合、三角形はつぶれてしまうが、式 (9.1) 自体は問題なく成立する。p, q は負にもなり得る。
右辺の分子・分母を cos θ で割れば tan (θ/2) = tan θ / (sec θ + 1) とも書ける。
[7] ∠CPA は直角。このことは、例えば次のように証明される。△AOP は、2辺の長さが単位円の半径に等しい。従ってそれは二等辺三角形で、その2個の底角の和は 180° − θ。1個の底角はその半分の大きさなので、∠OPA = 90° − θ/2。∠OPC = θ/2 ということは既に分かっているので、∠CPA = ∠OPA + ∠OPC = 90°。
△TCP と △PCA と △TPA は、相似な直角三角形。実際、直角三角形 TCP を考えると、∠P = 90° − θ/2。直角三角形 PCA を考えると、∠A = 90° − θ/2。これは直角三角形 TPA の ∠A でもある。従って、三つの三角形はどれも、少なくとも2個の内角が等しい。2個の内角が等しければ、自動的に3個の内角が等しい。
小さい直角三角形 TPA と ∠P を考えると、対辺の長さは TA = OA − p = 1 − cos θ。隣辺の長さは q = sin θ。従って、タンジェントの意味から:
この式も、θ = ±180° の場合、両辺が定義されない。さらに、θ = 0° の場合も、右辺が 0/0 になってしまい定義されない。
右辺を分数の引き算の形にすれば、tan (θ/2) = csc θ − cot θ とも書ける。
[8] 大きい直角三角形 PCA と ∠C に注目しよう。斜辺の長さは、単位円の直径 2。従って、対辺と隣辺は、それぞれ PA = 2 sin (θ/2) と CP = 2 cos (θ/2)。
小さい直角三角形 TPA と ∠P に注目すると、TA = PA sin (θ/2) だが、上記の事実と組み合わせると、= 2 sin (θ/2) × sin (θ/2)。従って TA = 1 − cos θ について、次が成り立つ。
辺の長さ PA = 2 sin (θ/2) の正負の意味が曖昧だが、sin (θ/2) の部分は結局2乗されるので、正でも負でも結果に変わりない。
同様に、直角三角形 TCP と ∠C に注目すると、CT = CP cos (θ/2) だが、それは = 2 cos (θ/2) × cos (θ/2) なので、CT = 1 + cos θ について、次が成り立つ。
(9.3) の左辺を (9.4) の左辺で割ったものと、(9.3) の右辺を (9.4) の右辺で割ったものは、等しい:
ただし θ = ±180° の場合、(9.5) は両辺とも定義されない。
[9] 正弦・余弦の半角公式は、余弦の倍角公式 (2C), (2B) からも容易に導かれる。(2C), (2B) を sin x, cos x について解いて θ = 2x と置くと:
左辺が 0 でない場合、左辺の正負に応じて、複号はどちらか一方のみが正しい。(9.3′), (9.4′) の両辺を2乗して2倍すれば、それぞれ (9.3), (9.4) になる(2乗すれば、符号は関係なくなる)。
(9.3′) の左辺を (9.4′) の左辺で割ったものと、(9.3′) の右辺を (9.4′) の右辺で割ったものは、等しい:
ただし θ = ±180° の場合、(9.5′) は両辺とも定義されない。
(9.5′) の根号内の分子・分母に (1 + cos θ) を掛けると (9.1) が得られ、(1 − cos θ) を掛けると (9.2) が得られる。(9.1), (9.2) は2乗の形を含んでいないが、複号は不要。どちらも、左辺・右辺は自動的に同じ符号になる。なぜなら (1 + cos θ) と (1 − cos θ) は決して負にならず、しかも、tan (θ/2) と sin θ は常に同符号。実際、0° ≤ θ < 180° のとき tan (θ/2) は負にならないが、sin θ も負にならない。180° < θ ≤ 360° のとき tan (θ/2) は正にならないが、sin θ も正にならない。
「半角のタンジェントでは、符号の心配は要らない」ということ、つまり「u = tan (θ/2) と q = sin θ は常に同符号」ということは図から一目瞭然で、「点 P が x-軸より上にあれば点 D も x-軸より上にあり、点 P が x-軸より下にあれば点 D も x-軸より下にある」ということを言っている。
cos ( π / 5 ) つまり cos 36° は黄金比の半分に当たり、正五角形を使った幾何学的方法で計算されることもある。手順は例えば以下の通りで、確かにエレガントだが…。
(例題) cos 36° を求めよ。
(解法の要約) 図のように、一辺の長さが 1 の正五角形 OPQRS を座標平面上に配置して、O が原点、P が第1象限、Q が x-軸上になるようにする。求めるものは OA の長さで、赤い線分の長さ x の半分に当たる。
赤い斜辺の二等辺三角形 ROQ の斜辺と底辺の比は、x : 1。一方、OR = x, OB = 1 なので BR = x − 1 であり、青い斜辺の二等辺三角形 BQR の斜辺と底辺の比は、1 : (x − 1)。赤と青の二等辺三角形は相似なので、この二つの比は等しい。
x は OQ 間の距離なので負ではなく、x = (1 + √5)/2 が題意に適する。求める長さは、その半分:
(終わり)
…けれど、正五角形の図を描くのは面倒だし、正五角形の一つの内角が 108° であることの証明から始めて、各部の長さや角度をきちんと説明していくと(付録A)、意外と長くなる。そもそもどうやって、上記の巧妙な作図、巧妙な補助線を発見すればいいのだろう。
以下では、作図に頼らず、代数的な計算で淡々とこれを求めてみたい。同じ手間なので、18°, 36°, 54°, 72° などの sin, cos をまとめて考える。
正五角形関連の話題では、次のページにも、面白いメモがいっぱいある。
『かいじゅうペンタゴン - 正五角形の探検』(遊びの数論23)
『五・六・十角形の恒等式 - 正五角形の弓矢』(遊びの数論24)
『遊びの数論22』の中にも、
「cos 36° のいろいろな求め方」
「cos 36° の求め方の改善」
「5倍角の公式の高速生成」がある。
メモの多くは「読み切り」。三角関数を使うものが多いが、三角関数を全く使わないものもある。「1 の原始 5 乗根」などの、ちょっぴり深い話も…。お楽しみください♪
(1), (2) で α = 2x とすると、4倍角の公式が得られる:
これらを加法定理と組み合わせると、5倍角の公式が得られる。(こんな計算をせずに n 倍角の公式を高速に導く方法については、付録B。)
右辺の後半は…
…なので、それを 8 cos5 x − 8 cos3 x + cos x と足し合わせると:
cos θ = 0 となるのは、動径が x-軸に対して垂直になって x-軸に落ちる影の長さがゼロになる瞬間、すなわち θ = ±90°, ±270°, ±450°, … の瞬間に限られる。つまり、式 (5) の左辺が cos (5x) = 0 となるのは、5x = ±90°, ±270°, ±450°, … の場合に限られ、それは x = ±18°, ±54°, ±90°, … と同じ意味。逆に言えば、式 (5) の値が 0 になるような cos x をリストアップすれば、そのリストは x = ±18°, ±54°, ±90°, … に対するコサインなので、そこには必ず cos ±18°, cos ±54°, cos ±90°, … の値が含まれている。このリストを得るには、
を満たす cos x を探せばいい。cos θ = cos (−θ) という性質、そして 0° ≤ θ ≤ 180° の範囲でコサインの値は全て出尽くすという事実を考慮すると、上記のリストは次の5項目から成るはず:
(6) の左辺は cos x と (16 cos4 x − 20 cos2 x + 5) の積であり、積が 0 になるためには、どちらかが 0 になる必要がある。このうち cos x = 0 は cos 90° の場合。cos 18°, cos 54° はこの条件を満たさないので、必然的にもう一方の条件:
を満たす。式 (7) で y = cos2 x と置くと:
次のように、最初から分子・分母を半分にした形で考えてもいい。
いずれにしても、約分すると:
cos 18° > cos 54° > 0 なので、cos 18°, cos 54° としては、一つ目の「±」でプラスを選び、二つの目の「±」については、値が大きくなる方を cos 18° とすればいいだろう:
数値を確認すると、前者は cos 0° = 1 と cos 30° = 0.866… の間にあり、後者は cos 45° = 0.707… と cos 60° = 0.5 の間にあるので、どうやらこれで正しそう。
(9) の最初の「±」でマイナスを選んだ場合、cos (9/10)π = cos 162° の値と、cos (7/10)π = cos 126° の値が得られる(内容的には、上記の二つの解の符号をマイナスにしただけ)。(6) には、この他もう一つ、cos (5/10)π = cos 90° に当たる解がある(計算するまでもなく値は 0)。
(6) は cos x についての5次方程式で、5次方程式は、一般には、このように5個の解を持つ。
cos 18° = √[(5 + √5) / 8] については、根号内の分子・分母に 2 を掛けて √[2(5 + √5) / (2×8)] = √(10 + 2√5) / 4 などと書くこともできる。cos 54° の値も同様で、√(10 − 2√5) / 4 と書くこともできる。
上記では cos 18° と cos 54° が求まったものの、本題の cos 36° は、まだ得られていない。36° の5倍は 180° なので、上記の方法を少し変形すれば対応可能だが、それより、コサインの倍角の公式
の教えに従って、cos 18° を2乗して2倍して1を引くのが、手っ取り早い。
角度をさらに2倍して cos 72° も求めておこう。
sin θ = cos (90° − θ) なので、次のように要約できる。
θ | 4 sin θ | 4 cos θ |
---|---|---|
18° = (1/10)π | −1 + √5 | √(10 + 2√5) |
36° = (2/10)π | √(10 − 2√5) | 1 + √5 |
54° = (3/10)π | 1 + √5 | √(10 − 2√5) |
72° = (4/10)π | √(10 + 2√5) | −1 + √5 |
前のセクションで求めた cos 54° = √[(5 − √5) / 8] は sin 36° の値でもあるので、ピタゴラスの定理を使ってそこから cos 36° を求めることもできる:
次のような、単純なパターンになっている。
θ | 8 sin2 θ | 8 cos2 θ |
---|---|---|
18° = (1/10)π | 3 − √5 | 5 + √5 |
36° = (2/10)π | 5 − √5 | 3 + √5 |
54° = (3/10)π | 3 + √5 | 5 − √5 |
72° = (4/10)π | 5 + √5 | 3 − √5 |
このうち 5 ± √5 については式 (8) から明らか。それらの相棒(すぐ左の欄)は、単に「8マイナスその値」。それだけ分かれば、残りの欄は三角関数の性質から自然に埋まる。
(**) の両辺の平方根を考えると、次のように、結果は (*) と一致する。
追記: 関連記事「cos π/7 正七角形の七不思議」を公開した。5倍角の公式の代わりに、今度は7倍角の公式を使ってみた。
正五角形を使った冒頭の方法について。
正五角形の内角の和は、三つの三角形(図の △OPQ, △ROQ, △OSR)の内角の和に等しいから、180° × 3。ゆえに正五角形の一つの角は、180° × 3 / 5 = 108°。
二等辺三角形 OPQ において、∠P = 108° なので、一つの底角は (180° − 108°)/2 = 36°。同様に、二等辺三角形 OSR の底角も 36°。
従って ∠ROQ = 108° − 36° − 36° = 36°。△ROQ も二等辺三角形で(△OPQ ≡ △OSR だから)、その一つの底角は (180° − 36°)/2 = 72°。
赤い斜辺の二等辺三角形 ROQ において、∠Q (=72°) を2等分する直線と、辺 RO の交点を B とする。
このとき、青い斜辺の △BQR も二等辺三角形。なぜなら、作図の仕方から青三角の ∠Q は 72°/2 = 36° であり、∠R = 108° − 36° = 72° なので、∠B = 72° となって、二つの底角が等しい。
赤い斜辺の二等辺三角形と、青い斜辺の二等辺三角形は、相似。なぜなら、どちらも 36°, 72°, 72° の三つの内角を持つ。この先は冒頭のようにすればいい…。
ところで「赤」と「青」の比は、OR と 1 の比。OB = 1 なので、これは「OR と OB の比」でもある。一方、三角形の相似から、赤三角における斜辺「赤」と底辺「青」の比は、青三角における 1 と BR の比。OB = 1 なので、こちらは「OB と BR の比」でもある。結局、「OR と OB の比」は「OB と BR の比」に等しい。
このように、「全体を大きな部分 a と小さな部分 b に分けて、全体と a の比が、a と b の比に、等しくなるようにする」場合、その比を黄金比という。x が黄金比の値であること、cos 36° がその半分になることは、図から一目瞭然。
記事の初めの計算によると、黄金比の値は:
「0倍角の公式」「1倍角の公式」は自明:
この二つの式を出発点に、簡単な計算を使って、2倍角・3倍角・4倍角…の公式を高速に生成できる。
表記を簡潔にするため、以下では cos x を C
と略す。C^2
と C^3
は、それぞれ
cos2 x と cos3 x を表す。C^4
以降も同様。
2C
倍 を A
とする。0倍角の公式の −1
倍 を B
とする。A
と B
を足すと、2倍角の公式が得られる。 2C
倍 を A
とする。1倍角の公式の −1
倍 を B
とする。A
と B
を足すと、3倍角の公式が得られる。2C
倍 を A
とする。−1
倍 を B
とする。A
と B
を足すと、(n + 1) 倍角の公式が得られる。C = (cos x) cos 0x = 1 cos 1x = C A = 2C^2 <-- (2C) cos 1x B = - 1 <-- (-1) cos 0x cos 2x = 2C^2 - 1 A = 4C^3 - 2C <-- (2C) cos 2x B = - C <-- (-1) cos 1x cos 3x = 4C^3 - 3C A = 8C^4 - 6C^2 <-- (2C) cos 3x B = - 2C^2 + 1 <-- (-1) cos 2x cos 4x = 8C^4 - 8C^2 + 1 A = 16C^5 - 16C^3 + 2C <-- (2C) cos 4x B = - 4C^3 + 3C <-- (-1) cos 3x cos 5x = 16C^5 - 20C^3 + 5C A = 32C^6 - 40C^4 + 10C^2 <-- (2C) cos 5x B = - 8C^4 + 8C^2 - 1 <-- (-1) cos 4x cos 6x = 32C^6 - 48C^4 + 18C^2 - 1 A = 64C^7 - 96C^5 + 36C^3 - 2C <-- (2C) cos 6x B = - 16C^5 + 20C^3 - 5C <-- (-1) cos 5x cos 7x = 64C^7 -112C^5 + 56C^3 - 7C
2C
倍は、真上の公式の各項の係数を2倍にして、次数を1ずつ増やしただけ。−1
倍は、2個前の公式の各項の符号を反転させただけ。
別の言い方をすると: コサインの (n + 1) 倍角の公式を作るには、n 倍角の公式の 2C
倍から (n − 1) 倍角の公式を引けばいい。本文では真面目にガリガリ計算したが、こっちの方が100倍速い!
加法定理を使うと:
上記の左辺と右辺をそれぞれ足し合わせると:
「5倍角の公式は、4倍角の公式の 2 cos x 倍、マイナス、3倍角の公式」ということが分かった。上記の関係は、3, 4, 5 を 4, 5, 6 や 5, 6, 7 に置き換えても、そのまま成り立つ。一般に、1 以上の任意の整数 n について、
という二つの式を足し合わせると次のようになるので、何倍角の公式でも同様に生成可能。
これは cos の話だが、sin も同様のパターンになる。 tan は別のパターンになる。
C
と略すことで、手順を分かりやすくした。