उनके गुणन द्वारा दर्शाया गया पूर्णांक जोड़ना फैक्टरिंग जितना कठिन है? संदर्भ अनुरोध


22

मैं निम्नलिखित परिणाम के लिए संदर्भ ढूंढ रहा हूं:

तथ्यात्मक प्रतिनिधित्व में दो पूर्णांक जोड़ना उतना ही कठिन है जितना सामान्य द्विआधारी प्रतिनिधित्व में दो पूर्णांकों को विभाजित करना।

(मुझे पूरा यकीन है कि यह वहां से बाहर है क्योंकि यह कुछ ऐसा है जिसे मैंने किसी बिंदु पर सोचा था, और तब उत्साहित था जब मैंने इसे अंत में प्रिंट में देखा था।)

"तथ्यात्मक प्रतिनिधित्व में दो पूर्णांक जोड़ना" समस्या है: दो संख्याओं x और y के अभाज्य गुणनखंड दिए गए हैं, के अभाज्य गुणनखंड का उत्पादन करते हैं x+y। ध्यान दें कि इस समस्या के लिए भोले एल्गोरिथ्म मानक बाइनरी प्रतिनिधित्व में सबरूटीन के रूप में कारक का उपयोग करता है।

अद्यतन : साक्ष्यों के लिए धन्यवाद केव और सादिक। जाहिर है कि अधिक साक्ष्यों के विलय, लेकिन मैं एक संदर्भ खोजने में और अधिक सहायता को प्रोत्साहित करना चाहूंगा , जैसा कि मैंने कहा कि मैं निश्चित रूप से मौजूद हूं। मुझे याद है कि इसे एक पेपर में अन्य रोचक और अक्सर-न-चर्चा किए गए विचारों के साथ पढ़ा जाता है, लेकिन मुझे याद नहीं है कि वे अन्य विचार क्या थे या सामान्य रूप से पेपर क्या था।


6
मुझे लगता है कि एक बेहतर शीर्षक होगा "क्या फैक्टरिंग द्वारा दर्शाए गए दो पूर्णांकों का योग फैक्टरिंग जितना कठिन है?"
एमएस डौस्ती

1
अच्छा प्रश्न। यदि हम दिए गए पूर्णांक को दो से आसान के रूप में कारक पूर्णांक में लिख सकते हैं, तो आप क्या चाहते हैं। यह अगर हम चाहते थे करने के लिए आसान है संख्या है, लेकिन मैं कैसे भी साथ यह करने के लिए नहीं दिख रहा है लॉग लॉग n संख्या। संख्याओं के वर्गों को देखने के लिए लायक हो सकता है जो कारक के लिए आसान हैं। lognloglogn
केवह

1
MO और Math.SE पर कुछ संबंधित प्रश्न: 1 , 2 , 3
Kaveh

जवाबों:


15

मान लें कि हम इस समस्या को हल कर सकते हैं जटिलता कक्षा में (FactSum इसे कहते की सुविधा देता है) और सी के तहत बंद कर दिया है लॉग -iteration (उर्फ लोग इन -bounded प्रत्यावर्तन) (जैसे हम गणना कर सकता है अगर एक्स * y जहां * एक द्विआधारी समारोह है, हम कर सकते हैं गणना एक्स 1 * ... * एक्स लॉग एन ) और शामिल पी (यह पिछले हालत कमजोर बनाया जा सकता है)। हम दिखाते हैं कि फैक्टरिंग C में भी हैCCloglogxyx1xlognPC

ध्यान दें कि प्रत्येक संख्या को 2 की शक्तियों के योग के रूप में लिखा जा सकता है । उनमें से प्रत्येक कारक के लिए आसान है।logn2

अब एक संख्या दी गई है, इसे उस की शक्तियों के योग के रूप में लिखें, फिर फैक्टरिंग रिप्रेजेंटेशन में प्रत्येक समन को लिखें, और फिर फैक्टरिंग प्रतिनिधित्व में उन्हें योग करने के लिए एल्गोरिथ्म का उपयोग करें। परिणाम इनपुट नंबर की फैक्टरिंग होगी।

इससे पता चलता है कि फैक्टरिंग आपकी समस्या के -ऑफ करने के लिए रिड्यूसेबल है फैक्टसम। इसलिए फैक्टरिंग पी फैक्टसम में है (और मुझे लगता है कि पी को यहां एन सी 1 से बदला जा सकता है)।logPFactSumPNC1


10

मुझे एक संदर्भ के बारे में पता नहीं है, लेकिन मुझे लगता है कि मैं एक सबूत के साथ आया हूं:

मान लें कि आपके पास एक ओरेकल , जो इनपुट दो फैक्टरेड नंबरों पर हैO

x=i=1npiαi

तथा

y=i=1mqiβi,

के गुणनखंड का उत्पादन करता है ।x+y

तक पहुँचने के बाद , हम निम्नलिखित पुनरावर्ती प्रक्रिया का उपयोग करके बहुपद समय में किसी भी संख्या N को कारक कर सकते हैं ।ON

प्रक्रिया कारक ( )N

  1. एक प्रमुख खोजें कि इस तरह के एन / 2 एक्स एन - 1 , और y = एन - एक्सxN/2xN1y=Nx
  2. यदि एक अभाज्य नहीं है, तो पुनरावर्ती कॉल फैक्टर ( y ) और आउटपुट O ( x , f a c t o r ( y ) ) द्वारा y का गुणनखंडन प्राप्त करें ।yyyO(x,factor(y))
  3. एल्स आउटपुट O(x,y)

विश्लेषण:

बड़े पर्याप्त एन के लिए अभाज्य संख्या प्रमेय द्वारा , N / 2 और N - 1 के बीच बहुत सारे अपराध हैं । यदि N इतना छोटा है कि कोई भी प्राइम इस अंतराल में नहीं गिरता है, तो आप N को आसानी से कर सकते हैं। इसलिए, चरण 1 पास होता है।NN/2N1NN

चरण 2 में, आप एकेएस या किसी भी अन्य बहुपद-काल-प्राणिकता परीक्षण का उपयोग कर सकते हैं ।

प्रत्यावर्तन की संख्या बस है , के बाद से हर कदम पर एन छमाही में कटौती है (कम से कम)O(lg(N))=O(|N|)N


PS-1: मान लिया जाये कि Goldbach का अनुमान भी (और संभवतः विषम) पूर्णांकों के लिए प्रक्रिया को तेज करने में मदद कर सकता है।

PS-2: उपयोग में कमी एक कुक कमी है। करप कटौती का उपयोग करके प्रमाण को ले जाने में रुचि हो सकती है।


3
मुझे लगता है कि यह खुला है अगर हम किसी दिए गए रेंज में कुशलता से एक प्रमुख पा सकते हैं तो मैं नहीं देखता कि आप कैसे कर रहे हैं 1.
केवह

1
@Kaveh: तुम सही हो! कुछ अतिरिक्त चरणों के साथ, मुझे लगता है कि मैं एल्गोरिथ्म को बदलने के लिए आवश्यकता नहीं कर सकता हूँ प्रधान और फिर इसे y की तरह कारक ; या हम यह मान सकते हैं कि कमी संभाव्य है (क्योंकि संभाव्य बहुपद में, हम दिए गए सीमा में एक प्रमुख पा सकते हैं)। xy
एमएस डौस्ती

2
हां, मुझे लगता है कि हमारे पास एक ही विचार था, यानी जो कारक पूर्णांक के लिए आसान खोजना चाहता था, जो आपने इनपुट का उपयोग करने की कोशिश की, मैंने 2 की शक्तियों का उपयोग किया। मैं अभी भी नहीं जानता कि क्या हम इसे कर सकते हैं ओरेकल के प्रश्नों की लघुगणक संख्या से कम है, और यह एक दिलचस्प और प्राकृतिक संख्या सिद्धांत प्रश्न से संबंधित प्रतीत होता है (संख्याओं को कारक के रूप में आसान के रूप में लिखता है)।
केवह

5

यह प्रतिक्रिया मेरे पिछले उत्तर से स्वतंत्र है । यह लक्ष्य है टिप्पणियों में @ केव की चिंता को संबोधित करना:

अगर हम चाहते थे तो यह करना आसान है लॉगn संख्याएँ, लेकिन मैं यह नहीं देखता कि यह कैसे करना है लॉगलॉगn संख्या।

मुझे इसी तरह की चिंता थी:

उपयोग में कमी एक कुक कमी है। करप कटौती का उपयोग करके प्रमाण को ले जाने में रुचि हो सकती है।

(कार्प की कटौती निर्णय की समस्याओं के लिए है। यहाँ, कार्प में कमी से मेरा मतलब एकल-कुक कुक की कमी है। गैर-मानक शब्दावली के लिए क्षमा करें!)


नीचे दिया गया उत्तर यहां की चर्चाओं पर आधारित है: /math/54580/factoring-some-integer-in-the-given-interval


इस उत्तर में, मैं एक निर्धारणात्मक बहुपद-समय कार्प कमी को फैक्टरिंग से दो पूर्णांकों के योग को उनके कारकों द्वारा दर्शाए गए तथ्य को प्रदान करूंगा । एक पकड़ है, हालांकि: प्रमाण के दौरान, मैं निम्नलिखित संख्या-सिद्धांत संबंधी धारणा का उपयोग करूंगा:

Cramér's conjecture: for any two consecutive prime numbers pn and pn+1, we have pn+1pn=O(log2pn).

Let N be the input, and let n=|N|=O(logN). By Cramér's conjecture, for large enough N, there's at least one prime in the interval [Nlog3N,N]. The length of this interval is log3N=O(n3). Therefore, this prime can be found in deterministic polynomial time by brute force.

Let x be the prime number in [Nlog3N,N], and let y=Nx.

Since 0ylog3N, we have |y|=O(loglogN)=O(logn), and y can be easily factorized (say, using trial division).

Finally, submit (x,y) along with their factorizations to the oracle, and get the factorization of N=x+y.


Thanks Sadeq, but conditional results was not what I was asking for. ps: I am interested in interesting representations of numbers and the representation that one gets from your answer (taking out a large prime) does not look very interesting to me. For giving the flavor of what I would be interesting to me: every natural number is sum of four squares.
Kaveh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.