判断两多项式之积是否等于另一多项式 - k76853的专栏 - 博客频道 - CSDN.NET



判断两多项式之积是否等于另一多项式 - k76853的专栏 - 博客频道 - CSDN.NET

问题描述:判断p(x),q(x)之积是否等于r(x),p,q,r分别为m,n,l 阶多项式

Random_polynomial(p(x),q(x),r(x),m,n,l)

输入:随机选取X[1:k]

输出:p(x)*q(x)是否等于r(x)

1          K =max{m+n,l}

2          For k=1 to K do

3              X[k] = random(real)    //no repeat

4          For k=1 to K do

5              If(p(X[k])* q(X[k])!= r(X[k])) then

6                  Return false

7          Return true

获得正确解的概率:

         若p(x)*q(x)与r(x)阶数相同成立,则对任意的k成立,输出正确解;若不成立,除非找到p(x)*q(x)-r(x)=0的k个根,否则等式一定不成立。

设实数集合大小为S,则找到k个根的概率为max{m+n,l}/S,因此一定为错误解的概率为max{m+n,l}/S。

时间复杂度:O(max{m+n,l})

综上所述,若算法返回false则一定位正确解;若放回true,则正确解的概率为1-max{m+n,l}/S。

由于算法并不能总获得问题的正确解,显然该随机算法为蒙特卡洛算法。


Read full article from 判断两多项式之积是否等于另一多项式 - k76853的专栏 - 博客频道 - 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