2 ^ n এবং n * 2 ^ n একই সময়ের জটিলতায় রয়েছে?


178

সময় জটিলতায় যে সংস্থানগুলি আমি খুঁজে পেয়েছি সেগুলি স্পষ্টত অ-বহুবর্ষীয় উদাহরণ সহ কোনও সময় জটিলতা সমীকরণের শর্তাদি অগ্রাহ্য করা কখন ঠিক নয় সে সম্পর্কে অস্পষ্ট।

এটি আমার কাছে স্পষ্ট যে এন 2 + n + 1 ফর্মটির কিছু দেওয়া হয়েছে , শেষ দুটি পদটি তুচ্ছ।

বিশেষত, দুটি এন , এবং এন * (2 এন ) দুটি বিভাগ দেওয়া হয়েছে, প্রথমটির মতো একই ক্রমে দ্বিতীয়টি? অতিরিক্ত এন গুণ গুণ আছে কি? সাধারণত সংস্থানসমূহ বলে যে এক্স এন ক্ষতিকারক এবং খুব দ্রুত বৃদ্ধি পায় ... তারপরে এগিয়ে যান।

আমি বুঝতে পারি যে এটি 2 এন যেহেতু বড় আকারের স্থানটিকে কেন ছাড়বে না, তবে কারণ তারা একসাথে যুক্ত হচ্ছে না, দুটি সমীকরণের সাথে তুলনা করার সময় এটি বেশ বড় বিষয় হবে, বাস্তবে তাদের মধ্যে পার্থক্য সবসময় n এর একটি কারণ হবে, যা কমপক্ষে বলা গুরুত্বপূর্ণ বলে মনে হচ্ছে।


8
আমার মতে, NLogN N এর তুলনায় কঠোরভাবে ধীর বলে বিবেচিত হয়েছে, তবে বেশিরভাগ লোকেরা কতটা দ্বারা সত্যই যত্ন করে না, এটি বলা নিরাপদ যে N2 ^ N কেবল 2 ^ N এর চেয়ে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে নয়, তবে লোকেদের পক্ষে "যথেষ্ট ধীর" নয় say যত্নে ..
জ্যাক

@ টোবিয়াস_ কে, আমি এই বিষয়টি বুঝতে পারি তবে ও (এন!) এর উদাহরণটি বিবেচনা করি। একটি অতিরিক্ত এন শব্দটি কি সত্যিই আলাদা হবে? ও (এন!) ও (এন * এন!) এর সাথে যেমন ও (এন!) ও ((এন + 1)!) ওরফে একই গ্রাফটি কেবল স্থানান্তরিত হয়েছে। যদিও বৃদ্ধি একই রকম ... এক্ষেত্রে কেউ কঠোরভাবে বড় হলেও বৃদ্ধি কি আলাদা? এই কি জটিলতা যত্নশীল সময় হয় না?
ম্যাটি-ডি

3
@ জ্যাকউইউ তবে বেশিরভাগ লোকেরা যতক্ষণ না আপনাকে এন এর পরিবর্তে কয়েক লক্ষ লক্ষ রেকর্ড সাজাতে হবে ততক্ষণ কতটা যত্ন নেই
সিবি

4
প্রকৃতপক্ষে, n! = o((n+1)!)এটি হ'ল এ্যাসেম্পোটোটিক্যালি কঠোরভাবে ধীর গতিতে।
চ্যানার

16
নোট করুন যে জটিলতার তত্ত্বের সাথে এর কোনও মিল নেই, এটি অ্যাইমোটটিকস সম্পর্কে "ন্যায়"। এছাড়াও, কম্পিউটার বিজ্ঞানের উপর এই জাতীয় প্রশ্নগুলি সম্ভবত ভাল ।
রাফেল

উত্তর:


231

Oএই প্রশ্নের উত্তর দিতে আপনাকে বড় ও ( ) এর আনুষ্ঠানিক সংজ্ঞাতে যেতে হবে ।

সংজ্ঞাটি হ'ল যদি সীমা বিদ্যমান থাকে তবেই যদি তা অনন্ত নয় f(x)to সংক্ষেপে এর অর্থ এই যে এখানে একটি ধ্রুবক উপস্থিত রয়েছে , এর মান এর চেয়ে বড় কখনও হয় না ।O(g(x))limsupx → ∞ (f(x)/g(x))Mf(x)/g(x)M

আপনার প্রশ্নের ক্ষেত্রে যাক এবং যাক । তারপর হয় যা এখনও অসীম হয়ে যাবে। সুতরাং অন্তর্গত নয় ।f(n) = n ⋅ 2ng(n) = 2nf(n)/g(n)nf(n)O(g(n))


5
কিছুটা সহজ সংজ্ঞা পড়ার জন্য এখানে দেখুন
এলডেন

3
সাধারণভাবে বলতে গেলে, আপনি এর সীমাটি নিতে পারবেন না O(f(x)/g(x)); বিগ-ও বিজ্ঞপ্তি ফাংশনগুলির একটি সেটের জন্য সংক্ষিপ্তকরণ, কোনও ফাংশন নয় যার মান আপনি সীমাবদ্ধ করতে পারেন। তবে আমি মনে করি এটি সত্য যে আপনি উপস্থিত f(x) = O(g(x))থাকলে তা প্রদর্শন করতে পারেন lim(x->infinity) f(x)/g(x)
চ্যানার

44
সীমা অস্তিত্ব আছে না; পর্যাপ্ত পরিমাণ বড় এক্স এর জন্য অনুপাতটি কেবল একটি ধ্রুবক দ্বারা উপরে আবদ্ধ হতে হবে। উদাহরণস্বরূপ, 2 + sin (x) ও (1) এ রয়েছে তবে (2 + পাপ (এক্স)) / 1 এক্স-> অনন্ত হিসাবে কোনও সীমাতে পৌঁছায় না।
ব্যবহারকারী 2357112

2
সংজ্ঞাটি lim supপরিবর্তে সঠিক হবে lim
ডেভিড আইজেনস্ট্যাট

11
@ আইভায়লোস্ট্রান্ডজেভ দয়া করে নোট করুন যে সংক্ষিপ্ত বিবরণে আপনার ভুল রয়েছে। এটি অবশ্যই যথেষ্ট পরিমাণে বড় হতে হবে x, সমস্ত মানের জন্য নয় x
স্টেফ

85

n⋅2ⁿএটির চেয়ে বড় দেখতে একটি দ্রুত উপায় হল ভেরিয়েবলের পরিবর্তন করা। যাক m = 2ⁿ। তারপর n⋅2ⁿ = ( log₂m )⋅m(উভয় পক্ষের বেস-2 লগারিদম গ্রহণ m = 2ⁿদেয় n = log₂m), এবং আপনি সহজেই যে দেখাতে পারেন যে m log₂mযতো তাড়াতাড়ি বৃদ্ধি m


3
ধন্যবাদ! এটি আমার মতে সেরা উত্তর। প্রথাগত সংজ্ঞাগুলির উপর ভিত্তি করে প্রমাণগুলি সঠিক, তবে যদি আপনার অতিক্রম করতে কোনও ধরণের হোঁচট খায় তবে খুব আরামদায়ক এবং পরিচিত উপমাটি কাজটি সবচেয়ে ভাল এবং দ্রুততম করে দেবে।
জন পি

1
বোকা প্রশ্ন, কী lg? বেস 2 তে লোগারিদম?
পিয়েরে আরলাড

3
এটি একটি অলস সংক্ষেপণ। কম্পিউটার বিজ্ঞানে এটি বেস 2 বোঝায় কারণ এটি বেশিরভাগ ক্ষেত্রে বিভাজন এবং বিজয়ী কৌশলগুলির ফলাফল। বিগ-ও স্বরলিপিতে এটি কোনও কিছুর প্রতিনিধিত্ব করতে পারে, কারণ x এবং y নির্বিশেষে কোনও সংখ্যার বেস-এক্স লোগারিদম কেবল তার ধীরে ধীরে ফ্যাক্টর দ্বারা তার বেস-ওয়াই লোগারিদম থেকে পৃথক হয়।
চ্যানার

3
আমার এট্রোস্পেক্টে নোট করা উচিত lgএটি বেস -10 লোগারিদমের জন্য আইএসও নোটেশন, বরং অ্যাসিম্পটোটিক রান সময়গুলি নিয়ে আলোচনার সময় বেস-অজোনস্টিক ব্যবহারটি সবচেয়ে বেশি ব্যবহৃত হয় used দেখুন en.wikipedia.org/wiki/Logarithm#Particular_bases
chepner

ঠিক আছে, অবশ্যই, তবে আমি কেন পাই না কেন এটি আরও স্পষ্ট যে এম লগ এম এমের চেয়ে দ্রুত বৃদ্ধি পায়, এন 2 ^ n 2 ^ n এর চেয়ে দ্রুত বৃদ্ধি পায়।
djechlin

10

সে ব্যাপারে আমি সম্মত n⋅2ⁿনয় O(2ⁿ), কিন্তু আমার মনে হয়েছে এটি আরো স্পষ্ট যেহেতু সীমা উচ্চতর ব্যবহার সবসময় না রাখা হওয়া উচিত।

: দ্য বিগ-হে আনুষ্ঠানিকভাবে সংজ্ঞা দ্বারা f(n)হয় O(g(n))যদি ধ্রুবক অস্তিত্ব c > 0এবং n₀ ≥ 0এই ধরনের সমস্ত যে n ≥ n₀আমরা আছে f(n) ≤ c⋅g(n)। এটি সহজেই দেখানো যেতে পারে যে এর জন্য f(n) = n⋅2ⁿআর কোনও ধ্রুবক উপস্থিত নেই g(n) = 2ⁿ। যাইহোক, এটি প্রদর্শিত যে প্রদর্শিত g(n)হয় O(f(n))

অন্য কথায়, n⋅2ⁿনিম্ন দ্বারা আবদ্ধ হয় 2ⁿ। এটি স্বজ্ঞাত। যদিও সেগুলি উভয়ই ক্ষতিকারক এবং এগুলি বেশিরভাগ ব্যবহারিক পরিস্থিতিতে ব্যবহারের জন্য সমানভাবে অসম্ভব, তবে আমরা বলতে পারি না যে তারা একই ক্রমের কারণ 2ⁿপ্রয়োজনীয়ভাবে তুলনায় ধীর গতিতে বেড়ে যায় n⋅2ⁿ


f(n) = 2*2^nআমার মনে হয় তুমি বোঝাতে চাইছ n*2^n?
tobias_k

4

আমি অন্যান্য উত্তর দিয়ে তর্ক করি না যা বলে যে এর n⋅2ⁿচেয়ে দ্রুত বৃদ্ধি পায় 2ⁿ। কিন্তু n⋅2ⁿবৃদ্ধি এখনও তাত্পর্যপূর্ণ।

আমরা যখন অ্যালগরিদম সম্পর্কে কথা বলি, আমরা প্রায়শই বলে থাকি যে সময় জটিলতা বৃদ্ধি পায় তা হ'ল তাত্পর্যপূর্ণ। সুতরাং, আমরা হতে বিবেচনা 2ⁿ, 3ⁿ, eⁿ, 2.000001ⁿ, অথবা আমাদের n⋅2ⁿজটিলতা একই গ্রুপের সূচকীয় সঙ্গে বৃদ্ধি করা হয়।

এটিকে কিছুটা গাণিতিক ধারণা দেবার জন্য, আমরা কোনও ফাংশনকে তাত্পর্যপূর্ণভাবে f(x)বাড়ানোর জন্য বিবেচনা করি (এর চেয়ে দ্রুত নয়) যদি এমন ধ্রুবক থাকে তবে c > 1তা ।f(x) = O(cx)

জন্য n⋅2ⁿধ্রুবক cচেয়ে কোন সংখ্যা বেশী হতে পারেন 2, এর যাক নিতে 3। তারপর:

n⋅2ⁿ / 3ⁿ = n ⋅ (2/3)ⁿএবং এটি 1কারও চেয়ে কম n

সুতরাং 2ⁿতুলনায় n⋅2ⁿধীর গতিতে ধীরে ধীরে বৃদ্ধি পায় 2.000001ⁿ। তবে তাদের তিনটিই তাত্ক্ষণিকভাবে বৃদ্ধি পায়।


শেষ উদাহরণে, এন * 2 2 ^ n 2 = 2.000001 greater n এর চেয়ে বেশি এন = 34,726,000। এই মুহূর্তে 2 10 n 10 মিলিয়নেরও বেশি সংখ্যার একটি সংখ্যা, তাই এটি সত্যিই কিছু যায় আসে না ...
gnasher729

1
@ gnasher729 এটি কেবল একটি ধ্রুবক যা আমরা চ (এন) এবং সি * ফ (এন) হিসাবে বাদ দিতে পারি বিগ-ও এর ক্ষেত্রে একই জটিলতা। যেমন 40'000'000 * 2.000001 ^ n এখনই n * 2 ^ n এর চেয়ে বড় greater তবে আপনি ঠিক বলেছেন, এটি আসলে কিছু যায় আসে না, আমি বলব যে আমরা ঘনিষ্ঠভাবে বৃদ্ধি পেয়ে একবার আঘাত হ'ল (যতক্ষণ না আমরা কেবলমাত্র ছোট ছোট মান পাই)।
আন্দ্রে

2

আপনি জিজ্ঞাসা করেছিলেন "প্রথমটির মতো একই ক্রমে দ্বিতীয়টি কি? অতিরিক্ত n গুণফল কী তাতে কোনও সমস্যা হয়?" এটি দুটি পৃথক উত্তর সহ দুটি পৃথক প্রশ্ন।

n 2 ^ n 2 ^ n এর চেয়ে তাত্পর্যপূর্ণভাবে দ্রুত বৃদ্ধি পায়। এই প্রশ্নের উত্তর।

তবে আপনি জিজ্ঞাসা করতে পারেন "যদি অ্যালগরিদম এ 2 ^ n ন্যানোসেকেন্ড নেয়, এবং অ্যালগরিদম বি n 2 ^ n ন্যানোসেকেন্ড নেয়, তবে সবচেয়ে বড় এনটি যেখানে আমি একটি দ্বিতীয় / মিনিট / ঘন্টা / দিন / মাস / বছরে সমাধান পেতে পারি? এবং উত্তরগুলি n = 29/35/41/46/51/54 বনাম 25/30/36/40/45/49. অনুশীলনে খুব বেশি পার্থক্য নেই।

উভয় ক্ষেত্রেই টি সবচেয়ে বেশি সমস্যার সমাধান হতে পারে যা টি সময়ে ও (এলএন টি) হয়।

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