দয়া করে বিবৃতিটি ব্যাখ্যা করুন যে a + b ফাংশন O (n ^ 2) এবং Θ (n) এর সাথে সম্পর্কিত?


12

ধরা যাক আমার একটি লিনিয়ার ফাংশন আছে f(n)= an+b, এটি প্রমাণ করার সর্বোত্তম উপায় কোনটি এই ফাংশনটি ও (এন 2 ) এর অন্তর্গত Θ(n)?

আমার এখানে গাণিতিক অনমনীয়তার দরকার নেই। আমি একটি প্রোগ্রামার উত্তর প্রয়োজন। ব্যাখ্যা করার কিছু যৌক্তিক উপায়।

এ কারণেই কেন আমি প্রশ্নটি গণিতের প্রশ্নোত্তরে এবং এর পরিবর্তে প্রোগ্রামার প্রশ্নোত্তর পোস্ট করি নি।


2
@ এমদাদকরিম সাহিত্যে প্রায়শই বিগ ও স্বরলিপি প্রায়শই টানটান সীমানাকে উপস্থাপন করতে আকস্মিকভাবে ব্যবহৃত হয় যা মূলত Θ (n)। বিগ হে আসলে উপরের আবদ্ধ।
গিক

1
@ এমদাদাকেরিম "ও (ও) এর উপরের সীমানা n * n।" নয়, ও (এন) এর উপরের সীমানা নেই। ও (এন) নিজেই উপরের সীমাটি সংজ্ঞায়িত করে। এটিতে ফাংশনগুলির একটি সেট থাকতে পারে যা শর্তটি পূরণ করে: f (x) ∈ O (g (x)) হিসাবে উপস্থিত রয়েছে সি> 0 (যেমন সি = 1) এবং x0 (যেমন x0 = 5) যেমন চ (এক্স) ) <সিজি (এক্স) যখনই x> x0।
গিগ

2
@ ইমাদকরিম আসলে ও (এন) \ উপসেট ও (এন ^ 2) \ উপসেট হে (এন ^ 3) এবং আরও, এইভাবে \ উপসেটের ট্রানজিটিভিটি দ্বারা হে (এন ^ 2) এ f মনে রাখবেন যে \ সাবসেট \ সাবটেক্স নয়।
স্কার্ফ্রিজে

6
"আমার একটি প্রোগ্রামার জবাব দরকার expla ব্যাখ্যা করার কিছু যৌক্তিক উপায়" " - আচ্ছা আপনি কীভাবে "যৌক্তিক" সংজ্ঞা দেন? গণিতটি যৌক্তিক। কঠোর চিন্তাভাবনার চেয়ে কম কিছু এখানে ভুল । আপনি বিষয়টি ব্যাখ্যা করার চেষ্টা করতে পারেন, তবে এর পিছনে (অন্যথায় শক্ত নয়) গণিত হজম না করে আপনি আসলে এটি পাবেন না - এটির অর্থ কী তা বোঝার জন্য আপনার কাছে কেবল কুয়াশাচ্ছন্ন ধারণা থাকবে।
ট্যামস সেজেলি

2
@ গীক: আমার ধারণা আপনি গণিত মানে ? CS.SE এছাড়াও একটি ভাল ঠিকানা হবে।
রাফেল

উত্তর:


20

বিগ ওহ স্বরলিপি (ও, থেটা, ওমেগা) কার্যকারণের বৃদ্ধির হার সম্পর্কে।

আপনি যখন একটি অ্যালগরিদম বাস্তবায়ন করেন, এটিতে একটি নির্দিষ্ট বৈশিষ্ট্য রয়েছে যখন আপনি ডেটাসেট পরিচালনা করে তখন রানটাইম কীভাবে পরিবর্তন হয়। এখন, আপনি অ্যালগরিদমটি অনুকূল করতে পারেন তাই এটি 100 এর ফ্যাক্টর দ্বারা দ্রুত চলে Sure অবশ্যই, এটি দুর্দান্ত তবে মূলত এটি এখনও একই অ্যালগরিদম। একইভাবে, কয়েক বছরে, কম্পিউটারগুলি আজকের চেয়ে দ্বিগুণ দ্রুত হতে পারে।

ল্যান্ডাউ স্বরলিপি এই ধ্রুবক কারণগুলি দূরে সরিয়ে দেয়। কোনও অ্যালগোরিদম fসর্বদা অন্য অ্যালগরিদমের তুলনায় দ্বিগুণ দ্রুত হয় কিনা সে সম্পর্কে এটি গুরুত্ব দেয় না g: সম্ভবত g4 গুণ দ্রুত চালানোর জন্য অনুকূলিত করা যেতে পারে, বা আপনি তার পরিবর্তে দ্রুত হার্ডওয়্যার কিনতে সক্ষম হতে পারেন। আপনি যদি এই দৃষ্টিকোণ থেকে এটি দেখুন, আপনি বলতে পারেন যে তারা "একই"। (এটি বলে না যে আপনি (সর্বদা) অনুশীলনে ধ্রুবক কারণগুলি উপেক্ষা করতে পারেন))

বড় ওহ একটি উপরের সীমা নির্দিষ্ট করে, এটি সম্পর্কের মতো <=

আপনি 1 < 2সত্য যে একমত হবে । তার মানে কি 1অন্য কোনও সংখ্যার চেয়ে কম হতে পারে না? অবশ্যই না. এর চেয়ে আরও বেশি সংখ্যক সংখ্যা রয়েছে 1

বৃদ্ধির হারের সাথে, এটি একই রকম। O(n)লাইনারি (বা আরও ধীরে ধীরে) বড় হওয়া সমস্ত ফাংশনের সেটকে বোঝায়। O(n^2)অন্যদিকে, সেই সমস্ত ফাংশন বোঝায় যা চতুর্ভুজীয় সামঞ্জস্য (বা ধীর) দিয়ে বৃদ্ধি পায়। আমি নিশ্চিত যে আপনি সম্মত হবেন যে একটি লিনিয়ার ফাংশন চতুর্ভুজ ফাংশনের চেয়ে আরও ধীরে ধীরে বৃদ্ধি পায়।

একারণে একটি ফাংশন একাধিক "বিগ-ওহ" শ্রেণিতে থাকতে পারে।

এখানে বিভিন্ন কার্যের সাথে তুলনা করা হচ্ছে সীমাবদ্ধতার: (নুথের কংক্রিট গণিত থেকে)

বৃদ্ধি হার তুলনা

বাম থেকে ডানে, ফাংশনগুলি দ্রুত বৃদ্ধি পায়।

এছাড়াও, এখানে চিত্র বর্ণনা লিখুনঅর্থ n ^ 2 n ^ 1 এর চেয়ে দ্রুত বৃদ্ধি পায় কারণ 2> 1।

সংজ্ঞা

ওমেগা সংজ্ঞা

"এফ দ্রুত বা সমান দ্রুত গ হিসাবে বৃদ্ধি পায়"

সংজ্ঞা বড় ওহ

"f ধীর গতিতে বা সমান দ্রুত গের আকারে বৃদ্ধি পায়"

সংজ্ঞা থিতা

উপরোক্ত দুটিয়ের সংমিশ্রণ। এটি বলে যে ফাংশনটি f"সমান দ্রুত" বাড়ছে g। এটি একটি সমতুল্য সম্পর্ক।

ব্যাখ্যা

ধরা যাক আপনার দুটি অ্যালগরিদম রয়েছে fএবং g

অন্ত

ধরে নেওয়া g এর থেটাতে নয়, এর জি এর ওমেগায় চঅর্থ হ'ল আপনার বাজেট নির্বিশেষে, আপনার সিস্টেমে আপনি যুক্ত করতে পারেন এমন কোনও ধরণের গণনা শক্তি নেই, যা fসর্বদা দ্রুত গতিতে চলে g

বড় ওহ

ধরে নেওয়া g এর থেটাতে নয়, এর জি এর বড় ওহ এঅর্থ হ'ল যদি আপনার কাছে পর্যাপ্ত ডেটা থাকে fতবে সর্বদা তার চেয়ে দ্রুত চলবে g, আপনি আপনার সিস্টেমে যতটা কম্পিউটিং শক্তি যুক্ত করেন তা বিবেচনা করে না।

প্রমাণ

আপনি যদি সত্যই এটি প্রমাণ করার চেষ্টা করছেন, আপনাকে ল্যান্ডউ নোটেশনের সংজ্ঞাগুলি ব্যবহার করে দেখাতে হবে যে আপনার ফাংশন প্রয়োজনীয় শর্তগুলি সন্তুষ্ট করে।

তাই আপনি যদি মান বের করতে হবে c, d, n_0যেমন যে শর্ত ঝুলিতে।

নিম্ন সীমাবদ্ধতার জন্য আপনি কীভাবে এটি করতে পারেন তা এখানে c:

প্রমাণ

এটি উপলব্ধি করা গুরুত্বপূর্ণ, যে আমি নির্বিচারে সংজ্ঞা দিচ্ছি cতার চেয়ে ছোট হিসাবে a-1পুরোপুরি ঠিক আছে। থেইটা (ছ) এর সংজ্ঞা বলে যে "সেখানে একটি আছে c"। এটি ০ এর চেয়ে বড় হিসাবে এটি কোনও মান হতে পারে ((যদি aইতিবাচক আসল সংখ্যা হয় তবে আপনাকে প্রুফটি কিছুটা পরিবর্তন করতে হবে, কারণ এটি a - 1সম্ভবত নেতিবাচক হতে পারে)

(আমি aধনাত্মক বলে ধরে নিচ্ছি , অন্যথায় ফাংশনটি সর্বদা বড় মূল্যবোধের জন্য সর্বদা নেতিবাচক থাকবে n, যা রানটাইম চিহ্নিতকরণের জন্য কোনও অর্থবোধ করে না))

আপনি উপরের সীমানার জন্য এটি করার চেষ্টা করতে পারেন, এটি বেশ অনুরূপ। আপনি যদি না জানেন তবে আমি আপনার জন্য একটি প্রমাণ সরবরাহ করতে পারি।

ইঙ্গিত: দিয়ে শুরু d > a + 1

মনোযোগ

এটি গুরুত্বপূর্ণ যে আপনি এটি চারপাশে ভুল উপায়ে প্রমাণ করবেন না। যদি আপনি ধরে নেন যে (একটি + বি) ও (এন) এ আছে এবং সেখান থেকে যান, আপনি যা চেয়েছিলেন তা প্রমাণ করেননি। আপনি যে আপনার ধাপের সব উভয় পথ যেতে, পরিবর্তে অর্থাত্ যাচাই করতে হবে =>আপনি <=>


2
এটাই. খুব খারাপ লোকেরা গণিতের কারণে বাইরে বেরিয়ে আসে, এটি আসলে খুব সহজ।
ট্যামস সেজেলি

প্রশ্ন: "আমি গাণিতিক কাঠিন্য এখানে প্রয়োজন হবে না আমি প্রোগ্রামারদের উত্তর ... প্রয়োজন।" স্বরলিপি এই উত্তরটি ব্যবহৃত প্রশ্নের জন্য সুযোগ্য বলে মনে হচ্ছে না
মশা

1
@ হাম্যাট হুম, আমি ভেবেছিলাম প্রশ্নটি একটি পর্যায়ে "প্রমাণ" বলেছে। যাইহোক, আমি গাণিতিক সংজ্ঞাগুলির জন্য ব্যাখ্যাগুলি যুক্ত করেছি।
ফ্যান্ট0 মি

@ ফ্যান্ট0 মিটার দুর্দান্ত উত্তর। ঠিক আমি খুঁজছেন ছিল কি . মূল গণিতটিতে "গণিত" সুনির্দিষ্টভাবে জিজ্ঞাসা না করা সত্ত্বেও উত্তরের গণিতগুলি এটিকে আরও শক্ত করে তুলেছে। অসংখ্য ধন্যবাদ.
Geek

@ গীক, আমি আপনাকে পছন্দ করে আনন্দিত। আপনার যদি আরও কোনও প্রশ্ন থাকে তবে নির্দ্বিধায় জিজ্ঞাসা করুন এবং আমি আমার উত্তর পরিষ্কার / প্রসারিত করতে পারি।
ফ্যান্ট0 মি

5

আপনি যখন বহুবচন নিয়ে কাজ করছেন, আপনি কেবল বহুবর্ষের ডিগ্রি সম্পর্কে যত্নশীল হন। এটি, কারণ an + b, আপনি কেবল যত্নশীল n। যদি এটি হয় তবে an^3 + bn^2 + cn + dআপনি কেবল যত্নশীল হবেন n^3

সুতরাং ডিগ্রি ডি সহ একটি বহুপদী সর্বদা থাকবে Θ(n^d)। সহজ।

এখন আমাদের ও ও এর মধ্যে পার্থক্য সম্পর্কে কথা বলা দরকার মূলত, এটি যথাক্রমে ==এবং <=যথাক্রমে একই পার্থক্য । সুতরাং Θ(n)তার মানে এটা নয় একটি ধ্রুবক ফ্যাক্টর মধ্যে সবসময় nO(n)এর অর্থ এটি সর্বদা হয় ধ্রুবক ফ্যাক্টরের মধ্যে nবা এর চেয়ে কম হয় n

এই উপায়ে যে কোন ফাংশন যা Θ(s)কোন জন্য s, এছাড়াও থাকবে O(s)। এছাড়াও, যদি কোনও ফাংশন থাকে Θ(s)এবং sঅন্য কোনও ফাংশনের তুলনায় সর্বদা কম থাকে তবে tসেই ফাংশনটি থাকে O(t)তবে না Θ(t)

সম্পূর্ণতার খাতিরে, এছাড়াও আছে Ω(n)। যদি Θপ্রতিনিধিত্ব করে ==এবং Oউপস্থাপন করে <=, Ωউপস্থাপন করে >=। তাই an + bহয় Ω(1), Θ(n)এবং O(n^2)

যেমনটি আমি আগেই বলেছি, শ্রেণি বহুপদী কী আছে তা নির্ধারণ করা সত্যিই সহজ - আপনি কেবলমাত্র ডিগ্রির দিকে তাকান। আরও কিছু ফাংশন রয়েছে যা কাজ করার জন্যও সহজ।

a^bnস্বেচ্ছাসেবীর জন্য আকারে কোনও ফাংশন aএবং bরয়েছে Θ(a^n)। যে কোনও মূল্যের জন্য c >= a, তারা এতে রয়েছে O(c^n)। প্রতিটি বহুপদী আছে O(2^n)। মূলত এটি কেবল বলে দেয় যে ঘাতক ক্রিয়াকলাপ সর্বদা বহুপদীকে পরাজিত করে এবং তাত্পর্যপূর্ণ ফাংশনটির ভিত্তিটি গুরুত্বপূর্ণ।

লোগারিদমগুলি এর বিপরীত। এক জন্য, log_b nযে Θ(log n)কোনও জন্য হয় b। এর অর্থ বেসটি লগারিদমের জন্য কোনও বিষয় নয়। এটি অর্থবোধ করে কারণ লোগারিদমে বিভিন্ন ঘাঁটির মধ্যে স্যুইচিং কেবল একটি ধ্রুবক দ্বারা গুণ করা হয়। লোগারিদমিক ফাংশনগুলিও O(n)- এটিই হ'ল লোগারিথমিক ফাংশনটি কোনও বহুপদী (কমপক্ষে ডিগ্রি 1) এর চেয়ে ছোট।

এই ফাংশনগুলির একটি যোগফল দেওয়া হয়েছে, বৃহত্তমটি "জিতেছে"। সুতরাং n + log nহয় Θ(n)কারণ nশব্দটি প্রাধান্য পায় log nপরিভাষা। গুণ বেশি জটিল। সি এস, শুধুমাত্র জিনিস আপনাকে জানতে হবে যে nlog nমধ্যে nএবং n^2


1
বেশ ভাল. ব্যাখ্যা উপরে আমার টনক শাস্ত্রীয় পাসে হিসাবে প্রতি অ্যালগরিদম ডিজাইন ম্যানুয়াল এটি পায় হিসাবে
মশা

1
@ টিখলন সুন্দর লেখার জন্য। তাই +1। তবে আমি যেটি গ্রহণ করেছি তা আরও ভাল ছিল।
গিক

-2

বেশি গাণিতিক ব্যবহার না করে আপনি f (n) = an + b ফাংশনটি গ্রহণ করেন এবং সমস্ত ধ্রুবককে ফেলে যান, সুতরাং এটি এফ (এন) = এন এর মতো দেখায়, তবে আপনি আপনার উত্তর QED হিসাবে সর্বোচ্চ ডিগ্রি সহ "এন" নেন Θ (ঢ)

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