《Algorithms》第1章:Algorithm with numbers 学习笔记 - 记路 - 博客频道 - CSDN.NET



《Algorithms》第1章:Algorithm with numbers 学习笔记 - 记路 - 博客频道 - CSDN.NET

1、二进制乘法的两个算法:

这两个算法本质上是一样的。讲到分治的时候,还会介绍新的算法。



2、乘法运算、指数模运算、欧几里得最大公约数:




3、欧几里得算法的几个引理:
  • if a >= b, then a mod b < a/2
  • if d divides both a and b, and d = ax + by for some integers x and y(may be negative) , then necessarily d = gcd(a,b)

4、模除法:gcd(a,N) = 1(即互质) <==> 存在x,使得ax ≡ 1 (mod N) (可用反证法证明)


5、素性测试:
  • 最naive的想法:用 2到根号n 除n

  • 费马小定理,通过费马测试的数不一定都是素数;
    引理:如果存在一个相对N为素数的a使得 a^(N-1) ≠ 1 mod(N), 则小于N的所有数里面至少有一半(N/2)个 满足这种条件的数。
    根据引理:P(return yes when N is not prime)  ≤ 1/2
    所以只需在选取k个a,就可以使出错概率减小到1/ (2^k) (以上分析都不考虑Carmichael number)
    以下是伪码:

     附:当a = 2, n≤25*10^9时,费马素性测试的出错情况:(出错概率随着要测试的数的长度的增加而快速下降)



6、密码学原理:对发出的信息进行扰乱,使人读不懂其内容,而接收信息的人按照事先约定的某种方式讲扰乱的信息进行复原,然后即可读懂。分为 私匙协议 和 公匙协议(数论) 。

Read full article from 《Algorithms》第1章:Algorithm with numbers 学习笔记 - 记路 - 博客频道 - CSDN.NET


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts