【离散数学及其应用】The Fundamentals:Algorithms, the Integers, and Matrices

本文介绍了算法的基本概念,包括贪心算法、复杂度分析的大O符号,并探讨了数论中的基本算法,如质数判断、不同进制转换、加法与乘法运算、除法算法及模幂运算等。此外,还详细讲解了欧几里得算法求最大公约数的过程。
部署运行你感兴趣的模型镜像

 

1. An algorithm is a finite set of precise instructions for performing a computation or for solving a problem.

Algorithm that make what seems to be the "best" choice at each step are called greedy algorithms.

 

 

 

2. Let f and g be functions from the set of integers or the set of real numbers to the set of real numbers, we say that f(x) is O(g(x)) if there are constants c and k such that |f(x)| <= c|g(x)| whenever x > k.

The constants c and k in the definition of big-O notation are called witnesses to the relationship f(x) is O(g(x)).

 

 

3. 1, logn, n, nlogn, n^2, 2^n, n!

 

 

4. Finding a prime

If n is a composite integer, then n has a prime divisor less than or equal to √n.

 

 

5. THE FUNDAMENTAL THEOREM OF ARITHMETIC

Every positive integer greater than 1 can be written uniquely as a prime or as the product of two or more primes. where the prime factors are wirtten int order of nondecreasing size.

e.g.

100 = 2 * 2 * 5 * 5

641 = 641

999 = 3 * 3 * 3 * 37

1024 = 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2

With nondecreasing size, we can find next prime factor by increasing the last exist prime.

 

 

6. How many primes are less than a positive number x?

THE PRIME NUMBER THEOREM

The ratio of the number of primes not exceeding x and x/lnx approaches 1 as x grows without bound.

The Prime Number Theorem tells us that the number of primes not exceeding x can be approxinated by x/lnx.

 

 

7. ALGORITHM 1: Construction Base b Expansions

Procedure base b expansion(n: positive integer)

q := n

k := 0

while q != 0

begin

ak := q mod b

q := floor(q / b)

k := k + 1

end { the base b expansion of n is (ak-1...a1a0)b }

 

 

8. ALGORITHM 2: Addition of Integers

Procedure add (a, b: positive integers)

{the binary expansions of a and b are (an-1an-2...a1a0)2 and (bn-1bn-2...b1b0)2, respectively}

c := 0

for j := 0 to n - 1

begin

d := floor((aj + bj + c) / 2)

sj := aj + bj + c - 2d

c := d

end

sn := c

{ the binary expansion of the sum is (snsn-1...s0)2 }

e.g.

a0 + b0 = c0 * 2 + s0

a1 + b1 + c0 = c1 * 2 + s1

...

an-1 + bn-1 + cn-2 = cn-1 * 2 + sn-1

sn = cn-1

 

 

9. ALGORITHM 3: Multiplying Integers

Procedure multiply (a, b: positive integers)

{ the binary expansions of a and b are an-1an-2...a1a0)2 and (bn-1bn-2...b1b0)2, respectively}

for j := 0 to n - 1

begin

if bj = 1 then cj := a shifted j places

else cj := 0

end

{ c0, c1, ..., cn-1 are the partial products }

p := 0

for j := 0 to n - 1

p := p + cj

{ p is the value of ab }

e.g.

ab = a(b02^0 + b12^1 + ... + bn-12^n-1)

     = a(b02^0) + a(b2^1) + ... + a(bn-12^n-1)

 

 

10. ALGORITHM 4: Computing div and mod procedure division algorithm

(a: integer, d: positive integer)

q := 0

r := |a|

while r >= d

begin

r := r - d

q := q + 1

end

if a < 0 and r > 0 then

begin

r := d - r

q := -(q+1)

end

{ q = a divd is the quotient, r = a and d is the remainder }

 

 

11. ALGORITHM 5: Modular Exponentiation

(find b^n mod m)

Procedure modular exponentiation

(b : integer, n = (ak-1ak-2...a1a0)2, m : positive intergers)

x := 1

power := b mod m

for i := 0 to k - 1

begin

if ai = 1 then x := (x * power) mod m

power := (power * power) mod m

end

{ x equals b^n mod m }

it uses O((logm)^2logn) bit operations.

 

 

12. Let a = bq + r. where a, b, q, and r are integers. The gcd(a, b) = gcd(b, r)

ALGORITHM 6: The Euclidean Algorithm procedure gcd(a, b : positive integers)

x := a

y := b

while y != 0

begin

r := x mod y

x := y

y := r

end { gcd(a, b) is x }

O(logb)

 

 

13. linear combination

gcd(a, b) can be form sa + tb, where s and t are integers.

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值