मेरे पास सबसे बड़ा आम divisors खोजने के लिए यूक्लिड के एल्गोरिदम के बारे में एक सवाल है।यूक्लिड के एल्गोरिदम समय जटिलता
जीसीडी (पी, क्यू) जहां पी> क्यू और क्यू एक एन-बिट पूर्णांक है।
मैं एल्गोरिथ्म पर एक समय जटिलता विश्लेषण का पालन करने के
gcd(p,q)
if (p == q)
return q
if (p < q)
gcd(q,p)
while (q != 0)
temp = p % q
p = q
q = temp
return p
मैं पहले से ही समझ में (इनपुट एन-बिट के रूप में ऊपर है) कोशिश कर रहा हूँ कि दो संख्याओं का योग, u + v
जहां u
और v
स्टैंड p
और q
के शुरुआती मूल्यों के लिए, कम से कम 1/2
के कारक से कम हो जाता है।
अब m
इस एल्गोरिदम के लिए पुनरावृत्तियों की संख्या होने दें। हम सबसे छोटे पूर्णांक m
जैसे (1/2)^m(u + v) <= 1
यहां मेरा प्रश्न है। मुझे लगता है कि प्रत्येक पुनरावृत्ति पर दो संख्याओं का योग (1/2)^m(p + q)
द्वारा ऊपरी-बाध्य है। लेकिन मैं वास्तव में नहीं देखता कि अधिकतम मात्रा m
तब तक पहुंच गई है जब यह मात्रा <= 1
है।
उत्तर ओ (एन) एन-बिट्स q
के लिए है, लेकिन यह वह जगह है जहां मैं अटक गया हूं।
कृपया मदद !!
यह सच नहीं है कि 'p + q' एक चरण में आधा है । 'पी = 199' और' क्यू = 100' पर विचार करें। – Henry
मैंने कुछ संपादन किए। – namesake22
यह ओ है (लॉग (मिनट ए, बी)) – LmTinyToon