Sayılar Teorisi

Bölme

\begin{align*} 
&a\mid b \Rightarrow~~\exists \ k\in\mathbb{I}~~~~b=ka \\ 
&a\nmid b
\end{align*} 

Teoremler

1)

\begin{align*}
&a\mid b \wedge a\mid c \Rightarrow a\mid(b+c)\\ 
&b=s.a~~~~c=t.a\\
&b+c=s.a+t.a \\
&b+c=(s+t)a
\end{align*}

2)

a\mid b \Rightarrow \forall_c \in \mathbb{I}~~~~a\mid(b.c)

3)

\begin{align*}
&a \mid b \wedge b\mid c \Rightarrow a\mid c\\
&b=s.a~~c=t.b\\
&c=(t.s)a
\end{align*}

Bölme İşlemi

a \in \mathbb{I}~~~~\exists d\in \mathbb{N}^+\\
a=dq+r\wedge 0\leq r< d 
-7=-3.3+2~~bu~kurala~uymuyor \\
-7=-2.3-1~~\checkmark \\
8=3.2+2~~\checkmark

Modül Aritmetiği

Modül İşlemi

m\in \mathbb{N}^+~~a,b\in \mathbb{I} \\
r=a(mod~m) \Leftrightarrow a=q.m+r \wedge 0\leq r < m\\
\begin{align*}
0 < a < m & \Rightarrow  r=a \wedge q=0 \\
a=m & \Rightarrow r=0 \wedge q=1 \\
a=q.m & \Rightarrow r=0 \wedge q=\frac{a}{m}
\end{align*}
(a~mod~m)mod~m=a

Modül Denkliği

a(mod~m)=b(mod~m)=r\\
a=q_a.m+r\\
b=q_b.m+r
a-q_a.m=b-q_b.m\\
(a-b)=(q_a-q_b)m\\
m\mid (a-b)\\
a=b(mod~m)~~~~c=d(mod~m)\\
(a+c)=(b+d)\\
(a.c)=(b.d)

Asal Sayı

p\rightarrow asaldır\\
p>1\\
\neg(\exists q(q\in \{2,3,4,\ldots,p-1\} \wedge q \mid p))

OBEB (GCD)

B=\{x\mid a \wedge x \mid b \} \\
\begin{align*}
x=OBEB(a,b) =~&max~\alpha\\
OBEB(a,b) =~&gcd(a,b)\\
&gcd(a,b) = 1
\end{align*}

a ile b aralarında asal demektir.

OKEK (LCM)

ab=gcd(a,b).lcm(a,b)

Öklid Algoritmasıyla GCD Hesabı

Yardımcı Teorem:

a=b.q+r\\
gcd(a,b)=d~olsun\\
gcd(b,r)=d'~olsun\\
d=d'
d \mid a \wedge d \mid b \Rightarrow d\mid (-q.b) \Rightarrow d \mid (a-q.b) \Rightarrow d\mid r
gcd(a,b)=cd(b,r) < gcd(b,r) \\
d' \mid b \wedge d'\mid r \Rightarrow d' \mid q.b \wedge d' \mid r\\
\Rightarrow d' \mid (g.b+r) \Rightarrow d' \mid a
gcd(b,r) = cd(a,b) \leq gcd(a,b)

Euclidean algorithm

a=b.q_1+r\\
a=r_0 ~~ b=r_1 ~~ r =r_2
\begin{aligned}
r_0 &= r_1.q_1+r_2 \wedge ~ 0 \leq r_2 < r_1 \rightarrow gcd(r_0,r_1) \\
r_1 &= r_2.q_2+r_3 \wedge ~ 0 \leq r_3 < r_2 \rightarrow gcd(r_1,r_2) \\
r_2 &= r_3.q_3+r_4 \wedge ~ 0 \leq r_4 < r_3 \rightarrow gcd(r_2,r_3) \\
\vdots \\
r_{n-2} &= r_{n-1}.q_{n-1}+r_n \wedge ~ 0 \leq r_2 < r_1 \rightarrow gcd(r_{n-2},r_{n-1}) \\
r_{n-1} &= r_n.q_n+0 \wedge ~ 0 \leq r_2 < r_1 \rightarrow gcd(r_{n-1},r_n) \\
r_n &= 0.q_n+0 \wedge ~ 0 \leq r_2 < r_1 \rightarrow gcd(r_n,0) = r_n\\
\end{aligned}

Örnek

gcd(3,5)
5=1.3+2 ~~~~ gcd(3,5) \\
3=1.2+1 ~~~~ gcd(2,3) \\
2=2.1+0 ~~~~ gcd(1,2) \\
gcd(1,0)
func gcd(n,m)
    if m=0 then gcdi = n
    else gcd(m, n(mod m))

örnek

gcd(252,198)=?
\begin{align*}
292 &= 1.198 + 54 \\
198 &= 3.54 + 35 \\
54 &= 1.36 + 18 \\
36 &= 2.18 + 0
\end{align*}

Cebirin Temel Teoremi

gcd(n,m) = t.n + s.m
18 = gcd(252,198) = t252+s198
\begin{align*}
292=1.198 + 54 &\rightarrow 54=252-1.198 \\
198=3.54 + 36 &\rightarrow 36 =198-3.54 \\
54=1.36 + 18 &\rightarrow 18 = 54-1.36 \\
36=2.18 + 0 &
\end{align*}

\begin{align*}
18&=54-1.36\\
&=54-1.(198-3.54) \\
&=1.54-1.198+3.54 \\
&=4.54 -1.198 \\
&=4.(252-1.198) - 1.198 \\
&=4.252-4.198-1.198\\
&=4.252-5.198
\end{align*}

Örnek

gcd(3,5)
\begin{align*}
5=1.3+2 &\rightarrow 2=5-1.3 \\
3=1.2+1 &\rightarrow 1=3-1.2 \\
2=2.1+0 &
\end{align*}
\begin{align*}
1&=3-1.2\\
&=1.3-1.(5-1.3) \\
&=1.3-1.5+1.3 \\
&=2.3-1.5
\end{align*}

Extended Euclid

g=gcd(n,m) = t.n+u.m
gcdext(n,m,g,t,u)
    if m=0 then g=n, t=1, u=0
    else
        si=u
        ui=t-floor(n/m).u
        ti=s
end{gcdext}

Örnek

\begin{align*}
&gcdext(5,3,g,t,u) \rightarrow g=1~~t=-1~~u=2 \\
&gcdext(3,2,g,t,u) \rightarrow g=1~~t=1~~u=-1 \\
&gcdext(2,1,g,t,u) \rightarrow g=1~~t=0~~u=1 \\
&gcdext(1,0,g,t,u) \rightarrow g=1~~t=1~~u=0 \\
\end{align*}

Örnek

\begin{align*}
gcdext(87,55,g,t,u) &\rightarrow g=1~~t=-12~~u=19 \\
gcdext55,32,g,t,u) &\rightarrow g=1~~t=7~~~~~~~u=-12 \\
gcdext(32,23,g,t,u) &\rightarrow g=1~~t=-5~~~~u=7 \\
gcdext(23,9,g,t,u) &\rightarrow g=1~~t=2~~~~~~~u=-5 \\
gcdext(9,5,g,t,u) &\rightarrow g=1~~t=-1~~~~u=2 \\
gcdext(5,4,g,t,u) &\rightarrow g=1~~t=1~~~~~~~u=-1 \\
gcdext(4,1,g,t,u) &\rightarrow g=1~~t=0~~~~~~~u=1 \\
gcdext(1,0,g,t,u) &\rightarrow g=1~~t=1~~~~~~~u=0 \\
\end{align*}

Ödev

extended euclid algoritmasını implemente ediniz

// C++ program to demonstrate working of
// extended Euclidean Algorithm
#include <bits/stdc++.h>
using namespace std;

// Function for extended Euclidean Algorithm
int gcdExtended(int a, int b, int *x, int *y)
{
	// Base Case
	if (a == 0)
	{
		*x = 0;
		*y = 1;
		return b;
	}

	int x1, y1; // To store results of recursive call
	int gcd = gcdExtended(b%a, a, &x1, &y1);

	// Update x and y using results of
	// recursive call
	*x = y1 - (b/a) * x1;
	*y = x1;

	return gcd;
}

// Driver Code
int main()
{
	int x, y, a = 35, b = 15;
	int g = gcdExtended(a, b, &x, &y);
	cout << "GCD(" << a << ", " << b
		<< ") = " << g << endl;
	return 0;
}

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *