गेब्रियल लैम के प्रमेय लॉग (1 / sqrt (5) * (a + 1/2) - 2 द्वारा चरणों की संख्या को बांधता है, जहां लॉग का आधार (1 + sqrt (5)) / 2 है। यह एल्गोरिथ्म के लिए सबसे खराब स्थिति स्केनेरियो के लिए है और यह तब होता है जब इनपुट लगातार फाइबोनैचि संख्या होते हैं।
थोड़ी अधिक उदार बाध्यता है: लॉग ए, जहां लॉग का आधार (sqrt (2)) कोबीजित्ज़ द्वारा निहित है।
क्रिप्टोग्राफ़िक प्रयोजनों के लिए हम आमतौर पर एल्गोरिदम की बिटवाइज़ जटिलता पर विचार करते हैं, इस बात को ध्यान में रखते हुए कि बिट आकार लगभग k =a द्वारा दिया जाता है।
यहां यूक्लिड एल्गोरिदम की बिटवाइज़ जटिलता का विस्तृत विश्लेषण दिया गया है:
यद्यपि अधिकांश संदर्भों में यूक्लिड एल्गोरिथम की बिटवाइज़ जटिलता ओ (लोगा) ^ 3 द्वारा दी गई है, जिसमें एक टाई बाउंड मौजूद है जो O (loga) ^ 2 है।
विचार करें; r0 = a, r1 = b, r0 = q1.r1 + r2। । । , ri-1 = qi.ri + ri + 1,। । । , rm-2 = qm-1.rm-1 + rm rm-1 = qm.rm
निरीक्षण करें कि: a = r0> = b = r1> r2> r3 ...> rm-1> rm> 0 .......... (1)
और rm a और b का सबसे बड़ा सामान्य भाजक है।
कोब्लिट्ज की किताब में एक दावे (थ्योरी और क्रिप्टोग्राफी में एक कोर्स) में यह साबित किया जा सकता है कि: री + 1 <(ri-1) / 2 ................ ( 2)
Koblitz में फिर से एक बिट-बिट पॉजिटिव पूर्णांक (मान k> = l) द्वारा k-bit पॉजिटिव पूर्णांक को विभाजित करने के लिए आवश्यक बिट संचालन की संख्या इस प्रकार दी गई है: (k-l + 1) .l ...... ............. (3)
By (1) और (2) विभाजनों की संख्या O (loga) है और इसलिए (3) कुल जटिलता O (loga) ^ 3 है।
अब कोब्लिट्ज में एक टिप्पणी के द्वारा इसे घटाकर O (loga) ^ 2 किया जा सकता है।
विचार करना = लोगरी +1
by (1) और (2) हमारे पास: ki + 1 <= ki for i = 0,1, ..., m-2, m-1 और ki + 2 <= (ki) -1 for i = 0 है। , 1, ..., एम-2
और (3) m डिवीजन की कुल लागत से घिरा है: SUM [(ki-1) - (((ki) -1))] * ki for i = 0,1,2, .., m
इसे पुन: व्यवस्थित करना: SUM [(ki-1) - (((ki) -1))] * ki <= 4 * k0 ^ 2
यूक्लिड के एल्गोरिथ्म की बिटवाइज़ जटिलता हे (लोगा) ^ 2 है।
a%b
। सबसे खराब स्थिति है जबa
औरb
क्रमिक फाइबोनैचि संख्याओं हैं।