গণনা of জটিলতা


উত্তর:


12

দ্রুত ফুরিয়ার ট্রান্সফর্ম ব্যবহার করে, বিট সংখ্যায় গুণগুলি সময়ক্রমে করা যেতে পারে de (যেখানে টিল্ড বোঝায় যে আমরা বহু- গৌণিক উপাদানগুলি উপেক্ষা করছি)। পুনরাবৃত্তি বর্গ মাধ্যমে আমরা গনা করতে সঙ্গে multiplications, এবং প্রতিটি গুণ চেয়ে সংখ্যা বৃহত্তর জড়িত , যা মোটামুটিভাবে হয়েছে বিট। সুতরাং প্রয়োজনীয় সময়ের মোট পরিমাণ হ'ল ।kO~(k)nn2O(log⁡n)nn2n2log2⁡nO~(n2(log⁡n)2)=O~(n2)


3

মন্তব্য প্রতিক্রিয়ায় সম্পাদিত গনা সময় সময় কম্পিউট করা প্রয়োজন করা যায় পচে এবং সঞ্চালন করা প্রয়োজন যে । আমি ধরে নেব যে একটি বিট সংখ্যাকে একটি বিট সংখ্যায় গুণিত করতে বিদ্যালয়ের বইয়ের পদ্ধতিতে ঠিক সময় লাগে ; সংযোজন ইত্যাদি ধ্রুবক সময় are ফলস্বরূপ, গণনা করতে সময় লাগে ।f(n)=nn2f1(n)=n2nf1(n)mnmnn2log22⁡(n)

মনে করুন যে আমরা কম্পিউটিংয়ের জন্য বাইনারি এক্সপেনসেন্টেশন ব্যবহার করি । বাইনারি এক্সপেনসেন্টেশন দুটি ধরণের অপারেশন করে : বর্তমান পণ্যটিকে স্কোয়ারিং করে এবং বর্তমান পণ্যটিকে দ্বারা গুণিত করে , এর বাইনারি সম্প্রসারণের বর্তমান বিট 0 বা 1 হয় কিনা অনুসারে , একটি শক্তির, যাতে বাইনারি এক্সফেনশনেশন উত্তরটি না পৌঁছানো পর্যন্ত বারবার তার বর্তমান পণ্যটিকে স্কোয়ার করে ote নোট that এর বিট রয়েছে, যাতে সংখ্যাটি এই জাতীয় স্কোয়ারিংয়ের মান হ'ল । এই বিষয়টি আমরা আরও নীচে বিশ্লেষণ করি।f(n)f(n)nn2n2n2m′=⌈2log2⁡(n)⌉m=m′−1

প্রথম স্কোয়ারিংতে সময় লাগে , যার ফলে একটি উত্পাদন হয়। দ্বিতীয় স্কোয়ারিংয়ে দুটি বিট সংখ্যায় নেওয়া হয় এবং সময় চলে আসে, যার ফলে একটি বিট পণ্য হয়। অবিরত, -th পদক্ষেপটি সময় নেয় এবং একটি পণ্য আউটপুট দেয় । এই প্রক্রিয়াটি তম ধাপে থামে ; ফলস্বরূপ, এটি সময় নেয়t1=log22⁡(n)o1=2log2⁡(n)o1t2=o12o2=2o1iti=4i−1log22⁡noi=2ilog2⁡(n)m

Texp=∑[1..m]ti=log22⁡(n)∑[1..m]4i=4m−13log22⁡n ।

যখন প্রাথমিক স্কোয়ারিং ব্যয় অন্তর্ভুক্ত করা হয়, আমরা আমাদের সর্বাধিক সময় প্রয়োজন বলে মনে করি

Texp+log22⁡n

বিঃদ্রঃ

  • আমি গণনাগুলিতে কিছু মেঝে এবং সিলিং বাদ দিয়েছি, এই আশায় যে তারা বস্তুগতভাবে উত্তরটির উপর প্রভাব ফেলবে না।
  • আমি ইচ্ছাকৃতভাবে কেবল কঠোর হতে একটি যথাযথ উপরের আবদ্ধের পক্ষে একটি ভিত্তিক বিশ্লেষণ বাদ দিয়েছি । O
  • উপরোক্ত যুক্তিটিও আমার স্পষ্টত বিশ্লেষণ ত্রুটিযুক্ত ছিল তা পরিষ্কার করে দেয়। স্বরলিপি ফাস্ট-এবং-আলগা ভাবে ব্যবহৃত হয়, এবং এটি সুবিধামত যাতে ধ্রুবক বাদ দেওয়া, উদাহরণস্বরূপ, জাদুর ওঠে । O∑tiO(log⁡n)
  • গুণগুলি এফএফটি এবং অন্যান্য পদ্ধতি দ্বারা সর্বদা গতি বাড়ানো যায়।

1
কীভাবে আপনি গণনার জন্য জটিলতা পেয়েছেন ? O(1)n2

4
আমি বলতে যাচ্ছি যে দুটি বিট সংখ্যার গুণনের জন্য সময়ের পরিবর্তে সময় লাগে , আপনার এটি বাইনারি এক্সফেনসিয়েশন ব্যয়ের জন্যও নির্ধারণ করতে হবে। nO(log⁡n)O(1)
— মার্ক ডোমিনাস

2
নোট করুন যে চূড়ান্ত বিট রয়েছে। সময়ে বিটগুলি গণনা করা খুব শক্ত । n2log2⁡nn2log2⁡nO(log⁡n)

ফেয়ার পয়েন্ট, আমি নোট নেব
— পিকেজি

1
@ থমাস অ্যান্ড্রুজ: এটি মেশিন এবং দামের মডেলের উপর নির্ভর করে। সংযোজনগুলির জন্য কনটেন্ট কস্ট সহ একটি র‌্যাম মডেল ধরে নেওয়া অস্বাভাবিক কিছু নয়।
— রাফেল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.