গণনা of জটিলতা


উত্তর:


12

দ্রুত ফুরিয়ার ট্রান্সফর্ম ব্যবহার করে, বিট সংখ্যায় গুণগুলি সময়ক্রমে করা যেতে পারে de (যেখানে টিল্ড বোঝায় যে আমরা বহু- গৌণিক উপাদানগুলি উপেক্ষা করছি)। পুনরাবৃত্তি বর্গ মাধ্যমে আমরা গনা করতে সঙ্গে multiplications, এবং প্রতিটি গুণ চেয়ে সংখ্যা বৃহত্তর জড়িত , যা মোটামুটিভাবে হয়েছে বিট। সুতরাং প্রয়োজনীয় সময়ের মোট পরিমাণ হ'ল ।kO~(k)nn2O(logn)nn2n2log2nO~(n2(logn)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=m1

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

Texp=[1..m]ti=log22(n)[1..m]4i=4m13log22n

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

Texp+log22n

বিঃদ্রঃ

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

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

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

2
নোট করুন যে চূড়ান্ত বিট রয়েছে। সময়ে বিটগুলি গণনা করা খুব শক্ত । n2log2nn2log2nO(logn)

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

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