गुणन एल्गोरिदम पर विकिपीडिया पृष्ठ डोनाल्ड नथ द्वारा एक दिलचस्प एक का उल्लेख करता है । मूल रूप से, इसमें लॉगरिदमिक-आकार के गुणकों की एक पूर्वनिर्मित तालिका के साथ फूरियर-ट्रांसफॉर्म गुणा का संयोजन शामिल है। यह रैखिक समय में चलता है।
लेख इस एल्गोरिथ्म की तरह काम करता है किसी भी तरह एक "सच" गुणन एल्गोरिथ्म के रूप में नहीं गिना जाता है। अधिक महत्वपूर्ण रूप से, यह एक खुला प्रश्न माना जाता है कि क्या गुणा O(n lg n)
समय में भी किया जा सकता है !
इस एल्गोरिथ्म का क्या विवरण इसे "सच" गुणा एल्गोरिथ्म के रूप में गिनने से अयोग्य घोषित करता है?
मेरे अनुमान हैं:
- तालिका को पूर्व-रेखीय करने में रैखिक समय से अधिक लगता है। दूसरी ओर, यह अभी भी
n lg n
समय में किया जा सकता है ताकि यह अभी भी प्रभावशाली प्रतीत हो। - रैंडम एक्सेस की अनुमति किसी भी तरह है। लेकिन फिर अन्य एल्गोरिदम हैश टेबल और पॉइंटर्स जैसी चीजों का उपयोग क्यों कर सकते हैं?
- यह किसी भी तरह से गलत है क्योंकि आप मशीन के आकार को बढ़ाते हैं, जैसे कि यदि आपके पास 256 बिट मशीन है जो एक निर्देश में 256 बिट गुणन करता है तो इस एल्गोरिथम का कोई मतलब नहीं है जब तक कि आपके पास 2 ^ 256 से अधिक तत्व न हों। दूसरी ओर, हम संघ-खोज में व्युत्क्रम-एकरमैन कारक से परेशान हैं।
- "क्या एक रैखिक समय गुणा एल्गोरिथ्म है?" सवाल कुछ कमजोर मशीन के संदर्भ में गुप्त रूप से है, लेकिन यह केवल संकेत मिलता है।