Module #8: Basic Number Theory

Slides:



Advertisements
Similar presentations
The Integers and Division. Outline Division: Factors, multiples Exercise 2.3 Primes: The Fundamental Theorem of Arithmetic. The Division Algorithm Greatest.
Advertisements

1 Section 2.4 The Integers and Division. 2 Number Theory Branch of mathematics that includes (among other things): –divisibility –greatest common divisor.
February 19, 2015Applied Discrete Mathematics Week 4: Number Theory 1 The Growth of Functions Question: If f(x) is O(x 2 ), is it also O(x 3 )? Yes. x.
CSE115/ENGR160 Discrete Mathematics 03/13/12 Ming-Hsuan Yang UC Merced 1.
Number Theory and Cryptography
CSE115/ENGR160 Discrete Mathematics 03/15/11
Mathematics of Cryptography Part I: Modular Arithmetic, Congruence,
Fall 2002CMSC Discrete Structures1 Let us get into… Number Theory.
BY MISS FARAH ADIBAH ADNAN IMK
The Integers and Division
Mathematics of Cryptography Part I: Modular Arithmetic, Congruence,
Divisibility October 8, Divisibility If a and b are integers and a  0, then the statement that a divides b means that there is an integer c such.
Integers Number Theory = Properties of Integers
CSCI 1900 Discrete Structures
Chapter 2 The Fundamentals: Algorithms, the Integers, and Matrices
7.1 CompSci 102© Michael Frank Today’s topics Integers & Number TheoryIntegers & Number Theory – –Integers – –Division, GCD – –Euclidean Alg – –Mod! Reading:
9/2/2015Discrete Structures1 Let us get into… Number Theory.
Lecture for Week Spring.  Numbers can be represented in many ways. We are familiar with the decimal system since it is most widely used in everyday.
© by Kenneth H. Rosen, Discrete Mathematics & its Applications, Sixth Edition, Mc Graw-Hill, 2007 Chapter 3 (Part 3): The Fundamentals: Algorithms, the.
Mathematics of Cryptography Part I: Modular Arithmetic
February 24, 2015Applied Discrete Mathematics Week 4: Number Theory 1 Modular Arithmetic Let a be an integer and m be a positive integer. We denote by.
3.4/3.5 The Integers and Division/ Primes and Greatest Common Divisors Let each of a and b be integers. We say that a divides b, in symbols a | b, provided.
MATH 224 – Discrete Mathematics
Module :MA3036NI Cryptography and Number Theory Lecture Week 7
CompSci 102 Discrete Math for Computer Science February 16, 2012 Prof. Rodger.
Copyright © Curt Hill Divisibility and Modular Arithmetic A Topic in Number Theory.
강원대학교 컴퓨터과학전공 문양세 이산수학 (Discrete Mathematics)  정수와 나눗셈 (The Integers and Division)
Copyright © Zeph Grunschlag, Basic Number Theory Zeph Grunschlag.
Copyright © 2009 Pearson Education, Inc. Chapter 5 Section 1 - Slide 1 Chapter 1 Number Theory and the Real Number System.
Based on Rosen, Discrete Mathematics & Its Applications, 5e Prepared by (c) Michael P. Frank Modified by (c) Haluk Bingöl 1/37 Module.
Foundations of Discrete Mathematics Chapter 4 By Dr. Dalia M. Gil, Ph.D.
資訊科學數學 9 : Integers, Algorithms & Orders 陳光琦助理教授 (Kuang-Chi Chen)
이산수학 (Discrete Mathematics) 2.5 정수와 알고리즘 (Integers and Algorithms) 2006 년 봄학기 문양세 강원대학교 컴퓨터과학과.
Module #9 – Number Theory 1/5/ Algorithms, The Integers and Matrices.
Slide Copyright © 2009 Pearson Education, Inc. Unit 1 Number Theory MM-150 SURVEY OF MATHEMATICS – Jody Harris.
Greatest Common Divisors & Least Common Multiples  Definition 4 Let a and b be integers, not both zero. The largest integer d such that d|a and d|b is.
Discrete Mathematics
AF2. Turn off your phones Primes, gcd, some examples, reading.
1 Discrete Structures – CNS2300 Text Discrete Mathematics and Its Applications Kenneth H. Rosen (5 th Edition) Chapter 2 The Fundamentals: Algorithms,
Ch04-Number Theory and Cryptography 1. Introduction to Number Theory Number theory is about integers and their properties. We will start with the basic.
Module #9 – Number Theory 6/11/20161 Chapter 3 Algorithms, Integers and Matrices.
Number Theory Lecture 1 Text book: Discrete Mathematics and its Applications, 7 th Edition.
CSE 311 Foundations of Computing I Lecture 12 Modular Arithmetic and Applications Autumn 2012 CSE
Chapter 3 The Fundamentals: Algorithms, the integers, and matrices Section 3.4: The integers and division Number theory: the part of mathematics involving.
Agenda Review:  Relation Properties Lecture Content:  Divisor and Prime Number  Binary, Octal, Hexadecimal Review & Exercise.
Number Theory. Introduction to Number Theory Number theory is about integers and their properties. We will start with the basic principles of divisibility,
Number-Theoretic Algorithms
COT 3100, Spring 2001 Applications of Discrete Structures
CSE15 Discrete Mathematics 03/15/17
COT 3100, Spring 2001 Applications of Discrete Structures
Integers and Division Section 3.4.
CMSC Discrete Structures
Number Theory and Cryptography
MATH301- DISCRETE MATHEMATICS Copyright © Nahid Sultana Dr. Nahid Sultana Chapter 4: Number Theory and Cryptography.
Applied Discrete Mathematics Week 3: Algorithms
Applied Discrete Mathematics Week 4: Number Theory
Module #8: Basic Number Theory
Foundations of Discrete Mathematics
Enough Mathematical Appetizers!
Discrete Mathematics and its Applications
Module #8: Basic Number Theory
The Integers & Division
Discrete Mathematics and its Applications
CMSC 203, Section 0401 Discrete Structures Fall 2004 Matt Gaston
Copyright © Zeph Grunschlag,
Divisibility and Modular Arithmetic
Applied Discrete Mathematics Week 10: Introduction to Counting
Number Theory.
Module #9: Basic Number Theory
Presentation transcript:

Module #8: Basic Number Theory Rosen 5th ed., §§2.4-2.6 Now we will jump to mathematical properties of integers, which are the topics of sections 4,5, and 6.

§2.4: The Integers and Division Of course you already know what the integers are, and what division is… But: There are some specific notations, terminology, and theorems associated with these concepts which you may not know. These form the basics of number theory. Vital in many important algorithms today (hash functions, cryptography, digital signatures). Why do we mention division first? Because addition, subtraction, and multiplication of integers are relatively simple. Also, there are some specific concepts and theorems regarding division. These basics of the number theory makes a basis for many CS-related algorithms and technologies

Divides, Factor, Multiple Let a,bZ with a0. a|b  “a divides b” : “cZ: b=ac” “There is an integer c such that c times a equals b.” Example: 312  True, but 37  False. If a divides b, then we say a is a factor or a divisor of b, and b is a multiple of a. “b is even” :≡ 2|b. Is 0 even? Is −4?

Divides Relation a,b,c  Z: 2. (a|b  a|c)  a | (b + c) 3. a|b  a|bc 4. (a|b  b|c)  a|c Proof of (2): a|b means there is an s such that b=as, and a|c means that there is a t such that c=at, so b+c = as+at = a(s+t), so a|(b+c) also.■

Prime Numbers An integer p>1 is prime iff it is not the product of any two integers greater than 1: p>1  a,bN: a>1, b>1, ab=p. The only positive factors of a prime p are 1 and p itself. Some primes: 2,3,5,7,11,13... Non-prime integers greater than 1 are called composite, because they can be composed by multiplying two integers greater than 1.

Fundamental Theorem of Arithmetic Its "Prime Factorization" Every positive integer has a unique representation as the product of a non-decreasing series of zero or more primes. 1 = (product of empty series) = 1 2 = 2 (product of series with one element 2) 4 = 2·2 (product of series 2,2) 2000 = 2·2·2·2·5·5·5; 2001 = 3·23·29; 2002 = 2·7·11·13; 2003 = 2003

The Division “Algorithm” Really just a theorem, not an algorithm… The name is used here for historical reasons. For any integer dividend a and divisor d≠0, there is a unique integer quotient q and remainder rN s.t. a = dq + r and 0  r < |d|. a,dZ, d>0: !q,rZ: 0r<|d|, a=dq+r. ! means uniquely exists (if d > 0) we can find q and r by: q=ad, r=aqd. The symbol that looks like a backwards “set-membership” relational operator is an abbreviation for “such that”.

Greatest Common Divisor The greatest common divisor gcd(a,b) of integers a,b (not both 0) is the largest (most positive) integer d that is a divisor both of a and of b. d = gcd(a,b) = max(d: d|a  d|b)  d|a  d|b  eZ, (e|a  e|b) → d ≥ e Example: gcd(24,36)=? Positive common divisors: 1,2,3,4,6,12… Greatest is 12.

GCD shortcut If the prime factorizations are written as and , then the GCD is given by: Example: a=84=2·2·3·7 = 22·31·71 b=96=2·2·2·2·2·3 = 25·31·70 gcd(84,96) = 22·31·70 = 2·2·3 = 12.

Relative Primality Integers a and b are called relatively prime or coprime iff their gcd = 1. Example: Neither 21 and 10 are prime, but they are coprime. 21=3·7 and 10=2·5, so they have no common factors > 1, so their gcd = 1. A set of integers {a1,a2,…} is (pairwise) relatively prime if all pairs ai, aj, ij, are relatively prime.

Least Common Multiple lcm(a,b) of positive integers a, b, is the smallest positive integer that is a multiple both of a and of b. E.g. lcm(6,10)=30 m = lcm(a,b) = min(m: a|m  b|m)  a|m  b|m  nZ: (a|n  b|n) → (m ≤ n) If the prime factorizations are written as and , then the LCM is given by

The mod operator * Modular or modulus operator An integer “division remainder” operator. Let a,dZ with d>1. Then a mod d denotes the remainder r from the division “algorithm” with dividend a and divisor d; i.e. the remainder when a is divided by d. (Using e.g. long division.) We can compute (a mod d) by: a  d·a/d. In C programming language, “%” = mod. * Modular or modulus operator

Modular Congruence Let Z+={nZ | n>0}, the positive integers. Let a,bZ, mZ+. Then a is congruent to b modulo m, written “ab (mod m)”, iff m | ab . Also equivalent to: (ab) mod m = 0. (Note: this is a different use of “” than the meaning “is defined as” that was used before.)

Spiral Visualization of mod Example shown: modulo-5 arithmetic ≡ 0 (mod 5) 20 15 ≡ 1 (mod 5) 10 ≡ 4 (mod 5) 19 5 21 14 16 9 4 11 6 1 3 2 Do another example on the board. 8 7 13 12 18 17 22 ≡ 2 (mod 5) ≡ 3 (mod 5)

Useful Congruence Theorems Let a,bZ, mZ+. Then: ab (mod m)  kZ a=b+km. Let a,b,c,dZ, mZ+. Then if ab (mod m) and cd (mod m), then: ▪ a+c  b+d (mod m), and ▪ ac  bd (mod m)

Rosen §2.5: Integers & Algorithms Topics: Euclidean algorithm for finding GCD’s. Base-b representations of integers. Especially: binary, hexadecimal, octal. Also: Two’s complement representation of negative numbers. Algorithms for computer arithmetic: Binary addition, multiplication, division.

Euclid’s Algorithm for GCD Finding GCDs by comparing prime factorizations can be difficult if the prime factors are unknown. Euclid discovered: For all integers a, b, gcd(a, b) = gcd((a mod b), b). Sort a,b so that a>b, and then (given b>1) (a mod b) < a, so problem is simplified.

Euclid’s Algorithm Example gcd(372,164) = gcd(372 mod 164, 164). 372 mod 164 = 372164372/164 = 372164·2 = 372328 = 44. gcd(164,44) = gcd(164 mod 44, 44). 164 mod 44 = 16444164/44 = 16444·3 = 164132 = 32. gcd(44,32) = gcd(44 mod 32, 32) = gcd(12, 32) = gcd(32 mod 12, 12) = gcd(8,12) = gcd(12 mod 8, 8) = gcd(4,8) = gcd(8 mod 4, 4) = gcd(0,4) = 4. Have students come up with other examples and work through them. Maybe start with a 2-digit example.

Euclid’s Algorithm Pseudocode procedure gcd(a, b: positive integers) while b  0 r := a mod b; a := b; b := r return a Sorting inputs is not needed because order will be reversed each iteration. Fast! Number of while loop iterations turns out to be O(log(b)), to be discussed in section 3.4

The “base b expansion of n” Base-b number systems Ordinarily we write base-10 representations of numbers (using digits 0-9). 10 isn’t special; any base b>1 will work. For any positive integers n, b, there is a unique sequence ak ak-1… a1a0 of digits ai<b such that We’ll deal with summation notation in detail later. For now, explain what it means in this particular case. The “base b expansion of n”

Particular Bases of Interest Used only because we have 10 fingers Base b=10 (decimal): 10 digits: 0,1,2,3,4,5,6,7,8,9. Base b=2 (binary): 2 digits: 0,1. (“Bits”=“binary digits.”) Base b=8 (octal): 8 digits: 0,1,2,3,4,5,6,7. Base b=16 (hexadecimal): 16 digits: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F Used internally in all modern computers Octal digits correspond to groups of 3 bits Hex digits give groups of 4 bits

Converting to Base b (Algorithm, informally stated) To convert any integer n to any base b>1: To find the value of the rightmost (lowest-order) digit, simply compute n mod b. Now replace n with the quotient n/b. Repeat above two steps to find subsequent digits, until n is gone (=0). Have students write out pseudocode in class?

Addition of Binary Numbers procedure add(an−1…a0, bn−1…b0: binary representations of non-negative integers a,b) carry := 0 for bitIndex := 0 to n−1 {go through bits} begin bitSum := abitIndex+bbitIndex+carry {2-bit sum} sbitIndex := bitSum mod 2 {low bit of sum} carry := bitSum / 2 {high bit of sum} end sn := carry return sn…s0: binary representation of integer s Show 3-input full adder truth table on board. Have students try this or one of the following algorithms by hand.

The bitwise logical complement of the n-bit string an−1…a0. Two’s Complement In binary, negative numbers can be conveniently represented using two’s complement notation. In this scheme, a string of n bits can represent any integer i such that −2n−1 ≤ i < 2n−1. The bit in the highest-order bit-position (n−1) represents a coefficient multiplying −2n−1; The other positions i < n−1 just represent 2i, as before. The negation of any n-bit two’s complement number a = an−1…a0 is given by an−1…a0 + 1. The bitwise logical complement of the n-bit string an−1…a0.

컴퓨터에서의 정수의 표현 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Binary code : 39 1 1 1 1 BCD code : 39 1 1 1 1 Sign magnitude code : -3 1 1 1 2’s complement code : -3 1 1 1 1 1 1 1

Why two’s complement? Decimal 7 6 … 1 -1 -2 -7 -8 binary 0111 0110 … -1 -2 -7 -8 binary 0111 0110 … 0001 0000 1111 1110 1001 1000 Decimal 15 14 … 3 2 1 binary 1111 1110 … 0011 0010 0001 0000

Why two’s complement? -23 Decimal 7 6 … 1 -1 -2 -7 -8 binary 0111 0110 -1 -2 -7 -8 binary 0111 0110 … 0001 0000 1111 1110 1001 1000 Decimal 15 14 … 3 2 1 binary 1111 1110 … 0011 0010 0001 0000 Positive values 22,21,20 -23 Positive values 23,22,21,20

When you want to find the negative of a number, you take the number, and subtract it from zero No difference between subtracting the number from 0 and subtracting it from 2n to find the negative of an n-bit number, subtract the number from 0 or subtract it from 2n subtract our number from (1111 + 1) rather than 10000. (n=4 case)

In decimal numbering system 10’s complement 9’s complement 873 -218 9’s complement 873 +781 1654 Drop the highest carry 654 Add 1 655

10’s complement 873 -218 10’s complement 873 +782 9’s complement + 1 1655 Drop the highest carry 655

Correctness of Negation Algorithm Theorem: For an integer a represented in two’s complement notation, −a = a + 1. Proof: a = −an−12n−1 + an−22n−2 + … + a020, so −a = an−12n−1 − an−22n−2 − … − a020. Note an−12n−1= (1−an−1)2n−1 = 2n−1 − an−12n−1. But 2n−1 = 2n−2 + … + 20 + 1. So we have −a = − an−12n−1 + (1−an−2)2n−2 + … + (1−a0)20 + 1 = a + 1.

Subtraction of Binary Numbers procedure subtract(an−1…a0, bn−1…b0: binary two’s complement representations of integers a,b) return add(a, add(b,1)) { a + (−b) } This fails if either of the adds causes a carry into or out of the n−1 position, since 2n−2+2n−2 ≠ −2n−1, and −2n−1 + (−2n−1) = −2n isn’t representable!

Multiplication of Binary Numbers procedure multiply(an−1…a0, bn−1…b0: binary representations of a,bN) product := 0 for i := 0 to n−1 if bi = 1 then product := add(an−1…a00i, product) return product i extra 0-bits appended after the digits of a

Binary Division with Remainder procedure div-mod(a,d  Z+) {Quotient & remainder of a/d.} n := max(length of a in bits, length of d in bits) for i := n−1 downto 0 if a ≥ d0i then {Can we subtract at this position?} qi := 1 {This bit of quotient is 1.} a := a − d0i {Subtract to get remainder.} else qi := 0 {This bit of quotient is 0.} r := a return q,r {q = quotient, r = remainder}

강의평가 가. 2005. 2학기 강의중간평가 시행기간     - 2005. 10. 11(화) ~ 2005. 10. 21(금) 나. 조사방법     - http://web.cse.snu.ac.kr/survey/ → 과목선택&확인 → 과목별 비밀번호 입력&확인 → 강의평가 입력&확인 → 학번 입력  또한 학생들이 설문에 보다 적극 참여할 수 있도록 설문참여여부를 숙제 점수 등에 반영하여 주시고, 이를 학생들에게 공지부탁드립니다. (강의평가시 마지막에 입력하는 학번을 통해 학부에서 과목별 설문참여 명단을 보내드릴 수 있음) 중간고사 11/2 (10/31 review) One more student