Matematyka Dyskretna
Transkrypt
Matematyka Dyskretna
Mateusz Styrczula
27 pa¹dziernika 2008
Matematyka Dyskretna
wiczenia Lista 3
Zadanie 4.
• Algorytm (zapisany w SML'u):
(* expmod - podnosi x do pot˛
egi k modulo n *)
fun expmod x 1 n = x mod n
| expmod x k n =
let
val xl = expmod x (k div 2) n
in
if k mod 2 = 0
then (xl * xl) mod n
else (x * xl * xl) mod n
end
• Ilo±¢ mno»e« wykonywanych przez powy»szy algorytm:
µ¹ º¶
µ¹ º¶
µ¹ º¶
k
k
k
T (k) = c + T
=c+c+T
=c+c+c+T
=
2
4
23
µ¹ º¶
µ¹
º¶
k
k
= c + c + c + ··· + c+ T
= c + c + c + ··· + c+ T
=
|
{z
}
|
{z
}
2m
2log2 k
m
log2 k
= log2 k · c + 0 = O(log2 k)
Zadanie 11.
(a) 721x + 448y = gcd(448, 721), x, y ∈ Z,
721
448
273
175
98
77
21
14
7
448
721 − 448
448 − 273
273 − 175
175 − 98
98 − 77
77 − 3 · 21
21 − 14
14 − 2 · 7
= 273
= 175
= 98
= 77
= 21
= 14
= 7
= 0
21 − 14 = 21 − (77 − 3 · 21) = 4 · 21 − 77 = 4 · (98 − 77) − 77 = 4 · 98 − 5 · 77 =
= 4 · 98 − 5 · (175 − 98) = 9 · 98 − 5 · 175 = 9 · (273 − 175) − 5 · 175 =
= 9 · 273 − 14 · 175 = 9 · 273 − 14 · (448 − 273) =
= 23 · 273 − 14 · 448 = 23 · (721 − 448) − 14 · 448 = 23 · 721 − 37 · 448
Zatem:
x = 23
y = −37
1
gcd(448, 721) = 7
(b) 333x + 1234y = 1, x, y ∈ Z,
1234
333
235
98
39
20
19
333
1234 − 3 · 333
333 − 235
235 − 2 · 98
98 − 2 · 39
39 − 20
20 − 19
=
=
=
=
=
=
235
98
39
20
19
1
21 − 19 = 20 − (39 − 20) = 2 · 20 − 39 = 2 · (98 − 2 · 39) − 39 = 2 · 98 − 5 · 39 =
= 2 · 98 − 5 · (235 − 2 · 98) = 12 · 98 − 5 · 235 = 12 · (333 − 235) − 5 · 235 =
= 12 · 333 − 17 · 235 = 12 · 333 − 17 · (1234 − 3 · 333) = 63 · 333 − 17 · 1234
Zatem:
x = 63
(c) −69−1 mod 1313 ≡ x,
y = −17
333−1 w pier±cieniu Z1234 wynosi 63
=⇒
(1313 − 69) · x + 1313 · y = gcd(1313, 1244)
1313
1244
69
2
1244
1313 − 1244
1244 − 18 · 69
69 − 34 · 2
=
=
=
69
2
1
69 − 34 · 2 = 69 − 34 · (1244 − 18 · 69) = 613 · 69 − 34 · 1244 =
= 613 · (1313 − 1244) − 34 · 1244 = 613 · 1313 − 647 · 1244
Zatem:
x = −647 ≡ 666
mod 1313
Zadanie 12.
Aby udowodni¢ tez¦ postawion¡ w zadaniu najpierw poka»¦ trzy lematy:
(a) gcd(Fn−1 , Fn ) = 1,
Dowód.
Indukcja po n:
• gcd(F1 , F2 ) = gcd(1, 1) = 1
√
• Zaªó»my, »e dla n0 < n równo±¢ zachodzi, zatem:
gcd(Fn−1 , Fn ) = gcd(Fn−1 , Fn−1 + Fn−2 ) = gcd(Fn−1 , Fn−2 )
z zaª. ind.
=
1
(b) Fm+n = Fm+1 Fn + Fm Fn−1 ,
Dowód.
Indukcja po n:
• Fm+1 = Fm+1 F1 + Fm F0 = Fm+1 · 1 + Fm · 0 = Fm+1
√
• Zaªó»my, »e dla n0 < n równo±¢ zachodzi, zatem:
Fm+n = Fm+n−2 + Fm+n−1
z zaª. ind.
=
Fm+1 Fn−2 + Fm Fn−3 + Fm+1 Fn−1 + Fm Fn−2 =
= Fm+1 (Fn−2 + Fn−1 ) + Fm (Fn−3 + Fn−2 ) = Fm+1 Fn + Fm Fn−1
2
(c) je±li m|n to Fm |Fn ,
Dowód.
Skoro zachodzi m|n to ∃q∈N n = qm, zatem Fn = Fqm .
Oczywistym jest, »e Fm |(q 0 · Fm ) (dla q 0 ∈ N).
Aby dowie±¢, »e Fm |Fqm poka»¦, »e ∃q0 ∈N Fqm = q 0 · Fm .
Indukcja po q :
√
• F1·m = 1 · Fm
• Zaªó»my dla pewnego k ∈ N, »e je±li q ≤ k to ∃q0 ∈N Fqm = q 0 · Fm , zatem (dla q = k ):
(b)
F(q+1)m = Fqm+m = Fqm+1 Fm + Fqm Fm−1
q
z zaª. ind.
=
Fqm+1 Fm + q 0 Fm Fm−1 =
00
z
}|
{
= Fm (Fqm+1 + q 0 Fm−1 )
Teza: gcd(Fm , Fn ) = Fgcd(m,n) .
Dowód.
(b)
(c)
?
gcd(Fm , Fn ) = gcd(Fm , Fqm+r ) = gcd(Fm , Fqm+1 Fr + Fqm Fr−1 ) = gcd(Fm , Fqm+1 Fr ) = gcd(Fm , Fr )
? z (c) wiadomo, »e Fm |Fqm , natomiast z (a) wiemy, »e Fqm ⊥ Fqm+1 , zatem Fm ⊥ Fqm+1 ,
Otrzymali±my, »e dla n = qm + r, zachodzi gcd(Fn , Fm ) = gcd(Fm , Fr ), czyli algorytm Euklidesa dziaªaj¡cy dla indeksów liczb Fibonacciego.
Zadanie 13.
Je±li a ⊥ b i a > b to gcd(am − bm , an − bn ) = agcd(m,n) − bgcd(m,n) (?), 0 < m < n.
Dowód.
Indukcja po n.
1. n = 0: gcd(am − bm , 0) = agcd(m,0) − bgcd(m,0)
√
2. Zaªó»my, »e dla n0 < n równanie (?) jest prawdziwe, poka»¦ zatem, »e dla n0 = n równo±¢ (?) te»
zachodzi.
gcd(am − bm , an − bn ) = gcd(am − bm , am+k − bm+k ) =
= gcd(am − bm , (am+k − am bk ) + (am bk − bm+k )) =
(a)
(b)
= gcd(am − bm , am (ak − bk ) + bk (am − bm )) = gcd(am − bm , am (ak − bk )) =
(b)
= gcd(am − bm , ak − bk )
z zaªo»enia indukcyjnego
=
(a)
agcd(m,k) − bgcd(m,k) =
= agcd(m,n−m) − bgcd(m,n−m) = agcd(m,n) − bgcd(m,n)
(a) gcd(m, qm + r) = gcd(m, r),
(b) je±li b ⊥ c to gcd(ab, c) = gcd(a, c),
3