পুনরাবৃত্তিযোগ্য ফিবোনাচি অ্যালগরিদমের জটিলতা


13

নিম্নলিখিত পুনরাবৃত্তিমূলক ফিবোনাচি অ্যালগোরিদম ব্যবহার করে:

def fib(n):
   if n==0:
      return 0
   elif n==1
      return 1
   return (fib(n-1)+fib(n-2))

যদি আমি ফাইব (5) সন্ধানের জন্য 5 নম্বর ইনপুট করি তবে আমি জানি এটি 5 আউটপুট দেবে তবে আমি কীভাবে এই অ্যালগরিদমের জটিলতা পরীক্ষা করব? আমি জড়িত পদক্ষেপগুলি কীভাবে গণনা করব?



আমিও এটির সন্ধান করছিলাম এবং মাইকোডস্কুলের দ্বারা আমি এই ভিডিওতে হোঁচট খেয়েছি আমি এটি পরীক্ষা করে দেখার পরামর্শ দিই।
snbk97

উত্তর:


23

বেশিরভাগ সময়, আপনি পুনরাবৃত্তাকারী সমীকরণগুলি ব্যবহার করে পুনরাবৃত্ত আলগোরিদিমগুলি উপস্থাপন করতে পারেন। এই ক্ষেত্রে এই অ্যালগরিদমের জন্য পুনরাবৃত্তির সমীকরণটি । তারপরে আপনি প্রতিস্থাপন পদ্ধতি বা সম্প্রসারণ পদ্ধতি (বা পুনরাবৃত্তিগুলি সমাধান করার জন্য ব্যবহৃত অন্য কোনও পদ্ধতি) ব্যবহার করে সমীকরণের বদ্ধ ফর্মটি খুঁজে পেতে পারেন। এক্ষেত্রে আপনি get , যেখানে হ'ল স্বর্ণের অনুপাত ( )।টি ( এন ) = Θ ( φ এন ) φ φ = ( 1 + + T(n)=T(n1)+T(n2)+Θ(1)T(n)=Θ(ϕn)ϕϕ=(1+5)2

পুনরাবৃত্তিগুলি কীভাবে সমাধান করবেন সে সম্পর্কে আপনি যদি আরও জানতে চান তবে আমি আপনাকে দৃg়ভাবে পরামর্শ দিচ্ছি যে আপনি অ্যালগরিদমগুলির পরিচিতির চতুর্থ অধ্যায়টি পড়ুন ।


0

পুনরাবৃত্তি সম্পর্ক / গণিত বিশ্লেষণের বিকল্প হিসাবে (তবে বিকল্প নয় ) একটি সাধারণ অভিজ্ঞতাবাদী অনুশীলন, যা সম্ভবত ক্লাসে খুব প্রায়ই শেখানো হয় না তবে খুব তথ্যপূর্ণ হয়, এটি হল ফাংশনের মৃত্যুদন্ডের সংখ্যা গণনা করা, এবং তারপরে একটি পরিসীমা গণনা করা ছোট এন ইনপুটগুলির, এবং তারপরে ফলাফলটি ফিট করে। ফলাফলগুলি সাধারণত তাত্ত্বিক গণিত পদ্ধতির সাথে ঘনিষ্ঠভাবে মিলবে।

এই অনুশীলনের জন্য ভাল সহায়ক উপাদানগুলি বিনামূল্যে অনলাইন অধ্যায় 3, অ্যালগরিদমগুলির চলমান সময় / কম্পিউটার বিজ্ঞানের ভিত্তি , আলমানের সন্ধান করতে পারে


1) প্লটিং কোনওভাবেই আনুষ্ঠানিক বিশ্লেষণকে প্রতিস্থাপন করে না। এটি সহজে বোকা। 2) আমার মনে হয় আপনি যে উত্সটি উদ্ধৃত করেছেন তা আপনি ভুল উপস্থাপন করছেন। তারা ষড়যন্ত্রের কথা উল্লেখ করে তবে "জটিলতা" নির্ধারণের উপায় হিসাবে নয় । ৩) এফডাব্লুআইডাব্লু, আমি পদ্ধতির সাথে একমত নই এবং এটি উলমানের উপস্থাপিত হিসাবে এটির ব্যবহার, তবে এটি আপনার দোষ নয়।
রাফেল

1
উত্তরটি মূলত আপনার দাবি অস্বীকারের সাথে শুরু করে বলেছে যে ষড়যন্ত্র করা গণিত বিশ্লেষণের বিকল্প নয় । ষড়যন্ত্র করছে এক বৈজ্ঞানিক পদ্ধতির / ডেটার আহ্বান পরিসংখ্যানগত দিক, যার মধ্যে অন্য সর্বাগ্রে দিক এবং বলে / পালন কখনও কখনও বোকা বানানো হয় সম্বন্ধে জানতে হয় বৈজ্ঞানিক বিশ্লেষণ । এটি "সহজে বোকা বানানো" বলার চেয়ে বরং নাটকীয় বলে মনে হয়, "প্যাথলজিকাল" ক্ষেত্রে এটি ব্যর্থ হয় তবে তারা সাধারণত "অনুমোদিত" হয় ... প্রশ্নটি ছিল অ্যালগরিদমের জটিলতা এবং পরীক্ষামূলক বিশ্লেষণ একটি মূল দিক /
এটিতে

0

ফাইব (এন) এর ফলাফল হ'ল সমস্ত পুনরাবৃত্ত কলগুলির সমষ্টি যা 1 ফিরে এসেছিল Therefore সুতরাং কার্যকর করার সময়টি হ'ল fi (ফাইব (এন)); আপনাকে দেখাতে হবে যে ০ টি রিটার্ন করা কল এবং অন্যান্য পুনরাবৃত্ত কলগুলি এতে উল্লেখযোগ্যভাবে যুক্ত হয় না।

একই যুক্তিটি কোনও পুনরাবৃত্তভাবে সংজ্ঞায়িত ফাংশনের ক্ষেত্রে প্রযোজ্য যা হয় হয় 1, বা 0, বা অন্য পুনরাবৃত্তির কল ফলাফল returns


"কমপক্ষে ও (ফাইব (এন))" - এটি কোনও অর্থ দেয় না। আপনি ব্যবহার করতে চান । Ω
রাফেল

উত্তরটি সম্পর্কে দৃ strongly়তা বোধ করলে নির্দ্বিধায় উত্তর দিন।
gnasher729

0

একজন লোয়ার বাউন্ড স্বজ্ঞাত হল: যেহেতু অত: পরটি ( এন ) > 2 টি ( এন - 2 ) টি ( এন - 1 ) > টি ( এন - 2 ) টি ( এন ) = Ω ( সি এন )T(n)=T(n1)+T(n2) T(n)>2T(n2)T(n1)>T(n2)T(n)=Ω(cn)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.