যাক আকারের একটি ধনাত্মক পূর্ণসংখ্যা সংশোধন হতে বিট।
একটিকে যথাযথভাবে এই পূর্ণসংখ্যার প্রাক-প্রক্রিয়া করার অনুমতি দেওয়া হয়।
সাইজের এম বিটগুলির আরও একটি ধনাত্মক পূর্ণসংখ্যার দেওয়া , গুণক A বি এর জটিলতা কত ?
ϵ = 0
যাক আকারের একটি ধনাত্মক পূর্ণসংখ্যা সংশোধন হতে বিট।
একটিকে যথাযথভাবে এই পূর্ণসংখ্যার প্রাক-প্রক্রিয়া করার অনুমতি দেওয়া হয়।
সাইজের এম বিটগুলির আরও একটি ধনাত্মক পূর্ণসংখ্যার দেওয়া , গুণক A বি এর জটিলতা কত ?
ϵ = 0
উত্তর:
যদিও এটি সর্বদা সর্বাধিক দক্ষ অ্যালগরিদম হবে না, সংযোজন চেইনের সাথে এই প্রশ্নের একটি খুব ঘনিষ্ঠ সম্পর্ক রয়েছে; সংযুক্তকরণের জন্য যে কোনও অ্যালগরিদম দ্রুত সংযোজনমূলক চেইন দ্বারা গণনার জন্য একটি অ্যালগরিদমে অনুবাদ করে বার বার সংযোজন (প্রতিটি সংযোজন অবশ্যই, একটি অপারেশন হওয়া)। এর বিপরীতে, কম্পিউটিং জন্য একটি দ্রুত আলগোরিদিম কোন কম্পিউটিং জন্য একটি দ্রুত আলগোরিদিম বিশালাকার , কিন্তু অবশ্যই এই অ্যালগরিদম অগত্যা একটি ছাড়াও শৃঙ্খল আকারে আছে না; তবুও, এটি শুরু করার মতো দুর্দান্ত জায়গা বলে মনে হচ্ছে। কটাক্ষপাত আছে http://en.wikipedia.org/wiki/Addition_chain বা ভোল চেক আউট। 2 এরf ( B ) = A B O ( n ) A B B Aআরও তথ্যের জন্য আর্ট অফ কম্পিউটার প্রোগ্রামিং ।
স্টিভেন স্টাডনিকি-র ধারণাকে প্রসারিত করার জন্য, আমরা দ্রুত একটি নিখুঁত অ্যালগরিদম তৈরি করতে পারি যা ডিস্ক্রিট ফুরিয়ার ট্রান্সফর্ম ব্যবহার করে ম্যাট্রিক্স গুণনের চেয়ে আরও ভাল করে তোলে।
আমরা বেশী সংখ্যা গণনা । যদি অর্ধেকেরও কম বিটগুলি হয় তবে আমরা তাদের অবস্থানগুলির একটি লিঙ্কযুক্ত তালিকা তৈরি করি। গুণিত করার জন্য, আমরা কেবল তালিকার প্রতিটি পজিশনে বাম স্থানান্তরিত করি (উপস্থাপিত বিট দ্বারা গুণিত) এবং ফলাফলগুলি যুক্ত করি।বি
যদি অর্ধেকেরও বেশি বিটগুলি এক হয় তবে আমরা উপরের মতো একই কাজ করি তবে আমরা পজিশনের তালিকাটি তৈরি করতে পরিবর্তে শূন্যগুলি ব্যবহার করি। ধারণাটি হ'ল আমরা এই যোগফলটি সেই যোগফল থেকে বিয়োগ করব যা সমস্তগুলি দ্বারা গুণিত করে প্রাপ্ত হবে। সকলের যোগফল পেতে, আমরা বিটের সংখ্যা দ্বারা স্থানান্তর করব এবং এটিকে বিয়োগ করব । তারপরে আমরা লিঙ্কযুক্ত তালিকা থেকে প্রাপ্ত আমাদের যোগফল বিয়োগ করতে পারি।ক খ
আমরা কল করতে পারি যে নিষ্পাপ লিঙ্ক-তালিকার অ্যালগোরিদম। এটির চলমান সময়টি সবচেয়ে খারাপ ক্ষেত্রে , তবে গড় ক্ষেত্রে , যা ডিএফটি থেকে ছোটের চেয়ে দ্রুত।ও ( | বি | √)| ক|
তালিকার ধারণাটি সর্বোত্তমভাবে ব্যবহার করতে আমরা বিভাজন এবং বিজয় ব্যবহার করি। আমরা বিভক্ত অর্ধেক, এবং সাদাসিধা অ্যালগোরিদম ব্যবহার করে যুক্ত তালিকার মাপ পাবেন। যদি সেগুলি 5 এর চেয়ে বেশি হয় তবে আমরা সমস্ত অর্ধেক পাঁচটির চেয়ে কম কাটতে না পারা পর্যন্ত 5 টিরও অধিক অর্ধেকের উপরে আমরা নিষ্কলুষ অ্যালগরিদমকে আবার কল করি। (এটি কারণ আমরা এটিকে 4 টি বিয়োগে কমাতে পারি)
আরও ভাল এখনও, আমরা আমাদের বিভাজন এবং বিজয়ী অ্যালগরিদম উন্নতি করি। আমরা শাখা প্রশস্তকরণের সমস্ত সম্ভাব্য সংমিশ্রণগুলির মাধ্যমে পুনরাবৃত্তি করি, লোভের সাথে সেরাটিকে বেছে নিয়ে। এই প্রিপ্রোসেসিং প্রকৃত গুণনের প্রায় একই সময় নেয়।
যদি আমাদের প্রাক-প্রক্রিয়াজাতকরণের সাথে অসীম স্বাধীনতার অনুমতি দেওয়া হয় তবে আমরা সর্বোত্তমভাবে সমস্ত শাখার জন্য অনুকূলিত বিভাজন এবং বিজয়ী অ্যালগরিদম সমাধান করি। এটি সবচেয়ে খারাপ ক্ষেত্রে সময় নেয় , তবে সংযোজন শৃঙ্খলা পদ্ধতিতে এটি সর্বোত্তম হওয়া উচিত।
আমি উপরের অ্যালগরিদমের জন্য আরও সঠিক মান গণনা করার জন্য কাজ করছি।
ধ্রুবক দ্বারা গুণিত নামক কাগজটি সাবলাইনার ( পিডিএফ ) হয় শিফট / সংযোজন ক্রিয়াকলাপগুলির জন্য একটি অ্যালগরিদম দেয় , যেখানে ধ্রুবকের আকার হয় ।এন
মূলত, এটি ধ্রুবকটিতে বিটগুলির সন্ধান, শিফট করে এবং সংখ্যাটি কেবল ধ্রুবকগুলিতে বিটগুলির জন্য গুণনের জন্য যুক্ত করে কাজ করে (বাইনারিটির জন্য দীর্ঘ সংখ্যাবৃদ্ধির মতো, যেখানে নীচের সংখ্যায় একটি বিটকে গুণিত করতে হয় শীর্ষ স্থানান্তরিত এবং যোগ করা হয় না, যখন একটি1 0 1 বিট মানে শীর্ষ স্থানান্তরিত হয় এবং যুক্ত হয়)। তবে এটি এখনও , কারণ ধ্রুবকটিতে ও ( এন ) 1- বিট থাকতে পারে ।
তারপরে কাগজটি ধ্রুবকের সংখ্যা উপস্থাপনাটিকে ডাবল-বেস নম্বর ব্যবস্থায় পরিবর্তন করার বিষয়ে কথা বলেছে, যেখানে রূপান্তরটি সঠিকভাবে করা গেলে এটি অ- বিট বিভক্ত হয়, (এটি একটি খুব অপ্রয়োজনীয় সংখ্যা সিস্টেম)। তারা গণনা করে যে এটি কতটা বিচ্ছিন্ন; শূন্য নন বিটের সংখ্যা ও ( এন ) এর চেয়ে কম সীমাবদ্ধ , সুতরাং এখানে সংযোজনগুলির একটি সাবলাইনার সংখ্যা রয়েছে। তবে এটি এখনও হে ( এন এম)প্রতিটি সংযোজনেরও(এম)ব্যয়েরকারণে প্রকৃত ক্রিয়াকলাপ(যেখানেএনধ্রুবকের আকার এবংএমঅন্য সংখ্যার আকার)।
সুতরাং আপনার প্রশ্নের উত্তর দেওয়ার জন্য, হ্যাঁ ম্যাট্রিক্স-ভেক্টর গুণকের অনুরূপ ফলাফল রয়েছে, আপনি যদি একটি ধ্রুবক থাকে তবে স্পিডআপ পান; তবে অবশ্যই এই গতিপথটি কেবল নিষ্প্রাণ দীর্ঘ-গুণণের চেয়ে বেশি, এবং সেখানে বহুগুণ অ্যালগরিদম রয়েছে যা হে ( এন 2) থেকে অনেক ভালআপনি এই অ্যালগরিদমটি পেতে পারেন।
বার্নস্টেইন, আর। (1986), পূর্ণসংখ্যার ধ্রুবক দ্বারা গুণ। সফ্টওয়্যার: অনুশীলন এবং অভিজ্ঞতা, 16: 641–652। doi: 10.1002 / spe.4380160704
ভিনসেন্ট লেফভেরের আরও আধুনিক কাজ এখানে পাওয়া যাবে (তাঁর অনুগামী কাজগুলি দেখতে নিশ্চিত হন), এবং তিনি দক্ষ সার্কিট সংশ্লেষণের একটি সিএমইউ প্রকল্পও নোট করেছেন (সেখানে উল্লেখগুলি দেখুন)। পরবর্তী প্রকল্প এমনকি ধ্রুবকগুলির সেট দ্বারা একযোগে গুণকেও বিবেচনা করে।
PS আমি আপনাকে আপনার ব্যবহারকারীর নামটি সনাক্তযোগ্য কিছুতে পরিবর্তন করতে বিবেচনা করতে উত্সাহিত করি।