平成24年4月29日
[流れ星]
第273回数学的な応募問題解答
<解答募集期間:4月8日〜4月29日
[合同式]
平成24年から実施される新学習指導要領(数学)の科目「数学A」は「場合の数と確率」「整数の性質」「図形の性質」の3つの内容から構成されています。「整数の性質」の中に「合同式」の考えがあります。
これは、a−bが自然数cで割り切れるときに、aとbはcを法として合同であるといい、a≡b(mod c)と表す。すると、次の性質が成り立ちます。
a≡b(mod m)、c≡d(mod m)ならば
(1)加法 a+c≡b+d(mod m)
(2)減法 a−c≡b−d(mod
m)
(3)乗法 ac≡bd(mod m)
<注:4月9日10日 青に訂正 指摘された八木さんに感謝します。>
(4)べき乗 an≡bn(mod m) nは自然数
問題1:次の合同式を解け。256x≡179(mod 337)
問題2:次の1次不定方程式を解け。
(1)39x+47y=4151 (2)32x+57y−68z=1
問題3:次の連立合同式を解け
(1)2x+7y≡1(mod 13),5x+10y≡2(mod 13)
(2)x≡3(mod 5),x≡4(mod 7),x≡5(mod 9)
NO1「uchinyan」 04/08 15時30分受信 更新4/29
まずは,最初にある合同式の性質を少し拡張して簡単に証明しておきましょう。
a ≡ b
(mod m),c ≡ d (mod m) とします。
(1) 加法 a + c
≡ b + d (mod m)
(a + c) - (b + d) = (a - b) + (c -
d) で,これが m の倍数だから。
(2) 減法 a - c ≡ b - d (mod m)
(a - c) - (b - d) = (a - b) - (c -
d) で,これが m の倍数だから。
(3) 乗法 ac ≡ bd (mod m)
ac - bd
= (a - b)c + b(c - d) で,これが m の倍数だから。
(4) べき乗 a^n ≡ b^n (mod
m),n は自然数
a^n - b^n = (a - b)(a^(n-1) + a^(n-2)b + …
+ ab^(n-2) + b^(n-1)) で,これが m の倍数だから。さらに,後で使うので,
(5) 除法,c と m が互いに素のとき ac ≡ bc (mod m) ならば a ≡ b (mod m)
ac - bc
= (a - b)c が m の倍数で,c と m が互いに素なので,a - b が
m の倍数だから。c と m が互いに素ではないときには,
残念ながら,単純に割ることはできず,簡単にはいきません。
以上の準備の下に解いていきます。
問題1:
256x ≡ 179 (mod 337)
2 と 337 は互いに素なので,mod 337 で
256x ≡ 179
256x + 0 ≡ 179 + 337 性質(1)
256x ≡ 516 両辺の計算
64x ≡ 129 性質(5)
64x + 0 ≡ 129 + 337 性質(1)
64x ≡ 466 両辺の計算
32x ≡ 233 性質(5)
32x + 0 ≡ 233 + 337 性質(1)
32x ≡ 570 両辺の計算
16x ≡ 285 性質(5)
16x + 0 ≡ 285 + 337 性質(1)
16x ≡ 622 両辺の計算
8x ≡ 311 性質(5)
8x + 0 ≡ 311 + 337 性質(1)
8x ≡ 648 両辺の計算
x ≡ 81 性質(5)
つまり,x ≡ 81 (mod 337),になります。
(別解)
ちょっと気付かないですが...mod 337 で
256x ≡ 179
(337 - 81)x ≡ 179 左辺の計算
337x - 81x ≡ 179 左辺の計算
337x - 81x - 337x ≡ 179 - 0 性質(2)
- 81x ≡ 179 両辺の計算
81x ≡ - 179 性質(3)
81x + 0 ≡ - 179 + 337 * 20 性質(1)
81x ≡ 6561 両辺の計算
81x ≡ 81 * 81 右辺の計算
x ≡ 81 性質(5)
面倒なので,以下では,使った性質に関していちいち示さないことにします。
問題2:
(1) 39x + 47y = 4151
- 8x ≡ 39x ≡ 4151 ≡ 15 (mod 47)
8x ≡ -15 ≡ 32 (mod 47)
x ≡ 4 (mod 47)
そこで,t を整数として,
x = 47t + 4,y = - 39t + 85
(別解)として,最初に y を求めると,
8y ≡ 47y ≡ 4151 ≡ 17 (mod 39)
8y ≡ 17 ≡ 56 (mod 39)
y ≡ 7 (mod 39)
そこで,s を整数として,
x = - 47s + 98,y = 39s + 7
になりますが,s = - t + 2 で両者は同じものです。
まぁ,これは当然ですね。
(2) 32x + 57y - 68z = 1
mod 57 で,
32x - 68z ≡ 1
32x ≡ 68z + 1 ≡ 68z + 58
16x ≡ 34z + 29 ≡ 34z + 86
8x ≡ 17z + 43 ≡ 74z + 100
4x ≡ 37z + 50 ≡ 94z + 50
2x ≡ 47z + 25 ≡ 104z + 82
x ≡ 52z + 41
そこで,s,t を整数として,
x = 57s + 52t + 41,z = t
で,y は元の式に x,z を代入して,
32(57s + 52t + 41) + 57y - 68(t) =
1
57y = - (32 * 57)s - (32 * 52 - 68)t + (1 - 32
* 41)
y = - 32s - 28t - 23
そこで,s,t を整数として,
x = 57s + 52t + 41,y = - 32s - 28t - 23,z = t
もちろん,s,t の自由度で他の表現もあり得ます。
問題3:
(1) 2x + 7y ≡ 1 (mod 13),5x + 10y ≡ 2 (mod 13)
4x + 14y ≡ (2x + 7y) * 2 ≡ 1 * 2 ≡
2 ≡ 5x + 10y (mod 13)
x ≡ 4y (mod 13)
2x + 7y ≡ 2(4y) + 7y ≡ 15y ≡ 1
(mod 13)
2y ≡ 15y ≡ 1 ≡ 14 (mod 13)
y ≡ 7 (mod 13)
x ≡ 4y ≡ 28 ≡ 2 (mod 13)
(2) x ≡ 3 (mod 5),x ≡ 4 (mod 7),x ≡ 5 (mod 9)
x ≡ 3 (mod 5) より,a を整数として x = 5a + 3 です。そこで,
x ≡ 5a + 3 ≡ 4 (mod 7)
5a ≡ 1 ≡ 8 ≡ 15 (mod 7)
a ≡ 3 (mod 7)
つまり,b を整数として a
= 7b + 3,x = 5(7b + 3) + 3 = 35b + 18 です。そこで,
x ≡ 35b + 18 ≡ 5 (mod 9)
35b ≡ - 13 ≡ - 4 ≡ 5 (mod 9)
7b ≡ 1 ≡ 10 ≡ 19 ≡ 28 (mod 9)
b ≡ 4 (mod 9)
つまり,c を整数として b
= 9c + 4,x = 35(9c + 4) + 18 = 315c + 158 になります。
(別解)
7 * 9 ≡ 63 ≡ 3 (mod 5),5 * 9 ≡ 45 ≡ 3 (mod 7),5 * 7 ≡ 35 ≡ 8 (mod
9)
7 * 9 * 2 ≡ 6 ≡ 1 (mod 5),5 * 9 * 5 ≡ 15 ≡ 1 (mod 7),5 * 7 * 8 ≡ 64 ≡
1 (mod 9)
なので,
x ≡ 7 * 9 * 2 * 3 + 5 * 9 * 5 * 4
+ 5 * 7 * 8 * 5 (mod 5 * 7 * 9)
x ≡ 378 + 900 + 1400 ≡ 2678 ≡ 158
(mod 315)
これは,いわゆる中国人の剰余の定理ですね。
(感想)
いよいよ高校でも合同式を習うのですね。
合同式は通常の等式と似ていて便利なのでこれはいいことです。
ただ,通常の等式と違って割り算は要注意ですが。
そこをしっかり理解すれば,大学レベルの群論への視界も開けるし,
個人的には何かうれしいし,高校生がうらやましくもあります。
No2「浜田明巳」 04/09 17時35分受信
更新4/29
問題1
256x≡179(mod 337)
から,
−81x≡−158(mod 337)
∴81x≡158(mod 337)
エクセルのマクロ(Maro1,Macro1_2)で解くと,x≡81(mod 337)となる.
問題2(勝手にx,y,zは整数という条件を付けさせていただきます.それとも不定方程式と銘打った段階で,自動的に整数を解とする方程式となるのでしょうか)
(1)39x+47y=4151
−1000≦x≦1000,−1000≦y≦1000の範囲で,エクセルのマクロ(Macro21)で解くと,
(x,y)=(4,85),(51,46),(98,7),………
という解が得られる.
この結果から,x=47m+4,y=39n+85(m,nは整数)となることが分かり,与える方程式に代入すると,
39(47m+4)+47(39n+85)=39・47(m+n)+(39・4+47・85)=39・47(m+n)+4151=4151
∴n=−m
∴(x,y)=(4+47m,85−39m)(mは整数)
(2)32x+57y−68z=1
32=2^5,57=3・19,68=2^2・17であるので,係数の絶対値の最小公倍数は,
2^5・3・17・19=31008
故に
x=31008/32・m+a,y=31008/57・n+b,z=31008/68・k+c(m,n,k,a,b,cは整数)
とすることができる.
与方程式に代入すると,
32(31008/32・m+a)+57(31008/57・n+b)−68(31008/68・k+c)=1
∴31008(m+n−k)+32a+57b−68c=1
故にm+n=kとして,32a+57b−68c=1となるa,b,cを1組求めればよい.
エクセルのマクロ(Macro22)で,−100≦x≦100,−100≦y≦100,−100≦z≦100の範囲で,与方程式を満たし,x,y,zの絶対値の和を最小にする組を求めると,
(x,y,z)=(−1,−3,−3)
故に
x=969m−1,y=544n−3,z=456(m+n)−3(m,nは整数)
となる.
問題3
(1)2x+7y≡1(mod 13),5x+10y≡2(mod 13)
2x+7y=13m+1,5x+10y=13n+2(m,nは整数)として,エクセルのマクロ(Macro31)で解くと,
(x,y)=(2,−6),(2,7),(−11,−6),(−11,7),………
となるので,
(x,y)=(13m+2,13n+7)(m,nは整数)
とすることができる.また確かに,
2・2+7・7=53≡1(mod 13),5・2+10・7=80≡2(mod 13)
であるので,
x≡2(mod 13),y≡7(mod 13)
(2)x≡3(mod 5),x≡4(mod 7),x≡5(mod 9)
0≦x≦10000の範囲で,エクセルのマクロ(Macro32)で解くと,
x=158,473,788,………
となる.
5,7,9の最小公倍数は315なので,
x=315n+158(nは整数)
であり,
x≡158(mod 315)
(マクロ)
Option Explicit
Sub Macro1() '256*x≡179(mod 337)
Dim x As Long
Dim retsu As Integer
Sheets("Sheet1").Select
retsu = 1
Cells(1, retsu).Value = 0
For x = 0 To 337 - 1
If (256 * x) Mod 337 = 179 Then
Cells(1, retsu).Value
= Cells(1, retsu).Value + 1
Cells(Cells(1, retsu).Value,
2).Value = x
Range("B" & Cells(1, retsu).Value).Select
End If
Next x
Range("B1").Select
End Sub
Sub Macro1_2() '256*x≡179(mod 337) → 81*x≡158(mod 337)
Dim x As Long
Dim retsu As Integer
Sheets("Sheet1").Select
retsu = 1
Cells(1, retsu).Value = 0
For x = 0 To 337 - 1
If (81 * x) Mod 337 = 158 Then
Cells(1, retsu).Value
= Cells(1, retsu).Value + 1
Cells(Cells(1, retsu).Value,
2).Value = x
Range("B" & Cells(1, retsu).Value).Select
End If
Next x
Range("B1").Select
End Sub
Sub Macro21()
Dim x As Long
Dim y As Long
Dim retsu As Integer
Sheets("Sheet1").Select
retsu = 4
Cells(1, retsu).Value = 0
For x = -1000 To 1000
For y = -1000 To 1000
If 39 * x + 47 * y = 4151 Then
Cells(1, retsu).Value = Cells(1, retsu).Value
+ 1
Cells(Cells(1, retsu).Value, retsu + 1).Value =
x
Cells(Cells(1, retsu).Value, retsu + 2).Value =
y
Range("E"
& Cells(1, retsu).Value).Select
End If
Next y
Next x
Range("E1").Select
End Sub
Sub Macro22()
Dim x As Long
Dim y As Long
Dim z As Long
Dim retsu As Integer
Dim wa As Long
Dim min As Long
Dim deta As Integer
Dim gyou As Integer
Sheets("Sheet1").Select
retsu = 8
Cells(1, retsu).Value = 0
min = 1000000
For x = -100 To 100
For y = -100 To 100
For z = -100 To 100
If 32 * x + 57 * y - 68
* z = 1 Then
Cells(1, retsu).Value = Cells(1, retsu).Value
+ 1
Cells(Cells(1,
retsu).Value, retsu +
1).Value = x
Cells(Cells(1, retsu).Value, retsu
+ 2).Value = y
Cells(Cells(1, retsu).Value, retsu
+ 3).Value = z
Range("I" & Cells(1, retsu).Value).Select
wa = Abs(x) + Abs(y) + Abs(z)
If min > wa Then
min = wa
End If
End If
Next z
Next y
Next x
deta = 0
gyou = 1
While deta = 0 And gyou <= Cells(1, retsu).Value
wa = Abs(Cells(gyou, retsu + 1).Value) +
Abs(Cells(gyou, retsu +
2).Value) + Abs(Cells(gyou, retsu
+ 3).Value)
If wa = min Then
deta = 1
Range("I" & gyou).Select
Else
gyou = gyou + 1
End If
Wend
End Sub
Sub Macro31() '2*x+7*y≡1(mod 13), 5*x+10*y≡2(mod 13)
Dim x As Double
Dim y As Double
Dim m As Integer
Dim n As Integer
Dim retsu As Integer
Sheets("Sheet1").Select
retsu = 13
Cells(1, retsu).Value = 0
For m = -50 To 50
For n = -50 To 50
x = (10 * (13 * m + 1) - 7 * (13 * n
+ 2)) / (2 * 10 - 7 * 5)
y = (-5 * (13 * m + 1) + 2 * (13 * n
+ 2)) / (2 * 10 - 7 * 5)
If Int(x)
= x And Int(y) = y Then
Cells(1, retsu).Value = Cells(1, retsu).Value
+ 1
Cells(Cells(1, retsu).Value, retsu + 1).Value =
x
Cells(Cells(1, retsu).Value, retsu + 2).Value =
y
Range("N"
& Cells(1, retsu).Value).Select
End If
Next n
Next m
Range("N1").Select
End Sub
Sub Macro32()
Dim x As Long
Dim retsu As Integer
Sheets("sheet1").Select
retsu = 17
Cells(1, retsu).Value = 0
For x = 0 To 10000
If x Mod 5 = 3 And x Mod 7 = 4 And x Mod 9 = 5
Then
Cells(1, retsu).Value
= Cells(1, retsu).Value + 1
Cells(Cells(1, retsu).Value,
retsu + 1).Value = x
Range("Q" & Cells(1, retsu).Value).Select
End If
Next x
Range("Q1").Select
End Sub
皆さん、答えがわかったら、一部でも構いませんから、解答とペンネームを添えて、
メールで送ってください。待っています。