ریاضی را حرف بزن · دانشگاه
نماد O بزرگ: کار با چه سرعتی زیاد میشود؟
نماد O بزرگ رشد دو کمیت را وقتی n بزرگ میشود، بدون توجه به ضریبهای ثابت، مقایسه میکند. دانشمندان علوم رایانه با آن میگویند یک روش بینهایت کندتر از روش دیگر است.
پیشنویس: نوشتهٔ یک دستیار هوش مصنوعی؛ هنوز معلمی آن را بررسی نکرده است.
الفبا
هر نماد را همانطور که زیرش نوشته شده بلند بخوان.
- بخوان: f از n، O بزرگ g از n استیعنی: f حداکثر به اندازهٔ g رشد میکند، تا یک ضریب ثابت، وقتی n بزرگ است.
- بخوان: f از n، تتای بزرگ g از n استیعنی: f و g با یک آهنگ رشد میکنند: f بین دو مضرب ثابت از g میماند.
- بخوان: f از n، اُمگای بزرگ g از n استیعنی: f دستکم به اندازهٔ g رشد میکند، تا یک ضریب ثابت.
- بخوان: f از n، o کوچک g از n استیعنی: f در برابر g ناچیز میشود: نسبت f به g به صفر میل میکند.
- بخوان: f از n، همارز مجانبی g از n استیعنی: f و g برای n بزرگ تقریباً برابرند: نسبت f به g به یک میل میکند.
- بخوان: لگاریتم n در پایهٔ دو، و n ضرب در لگاریتم n در پایهٔ دویعنی: تعداد دفعاتی که میشود n را نصف کرد، و همین تعداد ضرب در n.
- بخوان: دو به توان n، و n فاکتوریلیعنی: دو نوع رشد سریع: دو برابر شدن در هر گام، و ضرب در همهٔ عددها تا n.
- بخوان: T از n برابر است با دو برابر T از n بر دو، بهعلاوهٔ nیعنی: یک رابطهٔ بازگشتی: هزینه برای اندازهٔ n دو کار نیماندازه است، بهعلاوهٔ n گام اضافه.
داستان: دو راه برای پیدا کردن یک نام
روی هر سطر بزن تا کلمههایش را ببینی.
- راه اول: نامها را یکییکی نگاه کن. در بدترین حالت n بار نگاه؛ برای یک میلیون نام، یک میلیون بار.
- راه دوم، روی فهرست مرتب: وسط را ببین، نیمهٔ نادرست را دور بینداز، دوباره. حدود log₂ n بار نگاه.
- چون یک میلیون بین ۲ به توان ۱۹ و ۲ به توان ۲۰ است، نصف کردن دقیقاً بعد از ۲۰ بار نگاه تمام میشود.
- یک روش مثل n رشد میکند، دیگری مثل log n؛ ضریب ثابت اهمیتی ندارد.
- جستوجوی دودویی، تا یک ضریب ثابت، از جستوجوی خطی بیشتر نیست، و جستوجوی خطی دستکم به اندازهٔ دودویی است.
- بیشتر از این: نسبت هزینهٔ سریع به هزینهٔ کند به صفر میل میکند.
- وقتی n دستکم ۵ باشد، مرتبههای رشد بالا میروند: n، n log n، n به توان دو، ۲ به توان n، n فاکتوریل.
- امتحان کردن همهٔ ترتیبهای فقط ۲۰ نام یعنی حدود ۲٫۴ ضرب در ۱۰ به توان ۱۸ ترتیب: نومیدکننده.
- مرتبسازی با تقسیم: دو نیمه را مرتب کن، بعد در n گام ادغامشان کن.
- این رابطهٔ بازگشتی به هزینهای از مرتبهٔ n log n حل میشود، میان خطی و درجه دو.
این داستان با کلمهها ۸۶۸ حرف است؛ با نمادها ۱۸۷.
بخوانش
چه میگوید؟
بنویسش
کدام نمادنویسی همین را میگوید؟
f دستکم به اندازهٔ g رشد میکند، تا یک ضریب ثابت.
برای n بزرگ، f و g تقریباً برابرند: نسبتشان به یک میل میکند.
جستوجوی دودویی در فهرستی با n عضو، حدود لگاریتم n در پایهٔ دو بار نگاه لازم دارد.
n log n حداکثر به اندازهٔ n به توان دو رشد میکند، تا یک ضریب ثابت.
هزینههای دو روش هممرتبهاند.
جستوجوی دودویی: هزینه برای اندازهٔ n برابر هزینهٔ نیماندازه است، بهعلاوهٔ یک گام.
نصف کردن یک میلیون تا رسیدن به یک، حدود بیست گام میخواهد.
امتحان کردن همهٔ ترتیبهای n چیز، هزینهای از مرتبهٔ n فاکتوریل دارد.
log n در برابر n ناچیز است.
هر بار که n یکی بیشتر شود هزینه دو برابر میشود: رشد نمایی.
برای n بزرگ، تعداد گامها تقریباً دقیقاً n به توان دو بر دو است.
هر روشی برای این کار دستکم از مرتبهٔ n log n گام لازم دارد.
بسازش
کاشیها را به ترتیب بزن. یکی از کاشیها اضافه است.
هزینهٔ T از n هممرتبه با n log n است.
هزینه برای اندازهٔ n دو برابرِ هزینهٔ نیماندازه است، بهعلاوهٔ n.
هزینه برای اندازهٔ n برابر هزینهٔ اندازهٔ n منهای یک است، بهعلاوهٔ n گام دیگر.
n در برابر n به توان دو ناچیز است.
نسبت f به g به یک میل میکند: f و g همارز مجانبیاند.
بیست فاکتوریل حدود ۲٫۴ ضرب در ۱۰ به توان ۱۸ است.
چالشها
معماهای خلاقانهای که همهٔ نمادهای این فصل را به کار میبرند. عجله نکن؛ ساعتی در کار نیست.
1 نردبان رشد
شش آهنگ رشد، هر کدام در برابر همهٔ دیگران. هر جمله دربارهٔ آنها را داوری کن.
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ✓ | ✓ | ✓ | ✓ | ✓ | ||
| ✓ | ✓ | ✓ | ✓ | |||
| ✓ | ✓ | ✓ | ||||
| ✓ | ✓ | |||||
| ✓ |
تیک یعنی تابع سطر، O بزرگِ تابع ستون است.
هر آهنگ، O بزرگِ هر آهنگ همسطح یا بالاتر از خودش روی نردبان است، و o کوچکِ هر آهنگ بالاتر. هیچ آهنگی زیر پایینترین پله، log n، نیست، پس چیزی o کوچک آن نیست.
2 پنج خویشاوند
پنج مقایسه از دو تابع رشدکننده. هر کدام را به معنایش وصل کن.
روی یک سطر بزن، بعد روی معنایش.
اینها پنج قدرت متفاوتاند: حداکثر، همآهنگ، دستکم، ناچیز، تقریباً برابر. تقریباً برابر (نسبت به یک میل میکند) از همآهنگ (نسبت کراندار میماند) قویتر است.
3 هزینهٔ تقسیم
مرتبسازی با تقسیم این هزینه را دارد: دو مرتبسازی با نصف اندازه، بهعلاوهٔ n گام برای ادغام. یکی از کاشیها غلط است. پیدایش کن و درستش کن.
روی کاشیِ غلط بزن.
هر دو زیرکار اندازهٔ n بر دو دارند. نوشتن دو T از n یعنی دو کار به بزرگی کار اصلی، که هرگز تمام نمیشود.
4 کوچکتر، واقعاً کوچکتر
این باید بگوید n در برابر n log n ناچیز است. یکی از کاشیها غلط است. پیدایش کن و درستش کن.
روی کاشیِ غلط بزن.
اُمگا میگوید n دستکم به اندازهٔ n log n رشد میکند، که نادرست است. نسبت n به n log n به صفر میل میکند، و این دقیقاً o کوچک است.
5 نگاهها در یک میلیون
جستوجوی دودویی در فهرست مرتب یک میلیون نام حداکثر به این تعداد نگاه نیاز دارد. این عدد چیست؟
نصف کردن یک میلیون ۱۹ بار هنوز بیش از یک نام میگذارد (۲ به توان ۱۹ برابر ۵۲۴٬۲۸۸ و کمتر از یک میلیون است)؛ نصف کردنِ بیستم تمامش میکند، و ۲ به توان ۲۰ برابر ۱٬۰۴۸٬۵۷۶ است.
6 بازش کن
اگر T از ۱ صفر باشد، T از ۸ چقدر است؟
T از ۲ برابر ۲×۰ + ۲ = ۲ است، T از ۴ برابر ۲×۲ + ۴ = ۸، T از ۸ برابر ۲×۸ + ۸ = ۲۴، یعنی ۸ ضرب در log₂ ۸، همانطور که n log n پیشبینی میکند.
7 دو برابر شدن از هزارها جلو میزند
در هر گام دو برابر میشویم: کوچکترین n که ۲ به توان n از هزار بیشتر شود چیست؟
۲ به توان ۹ برابر ۵۱۲ است و کم است، ۲ به توان ۱۰ برابر ۱۰۲۴ است و کافی: ده بار دو برابر شدن از هزار میگذرد، بیست بار از یک میلیون.
8 بگو چه کسی برنده است
T۱ هزینهٔ راه کند و T۲ هزینهٔ راه تند است. بنویس که هزینهٔ راه تند در برابر هزینهٔ راه کند ناچیز است.
یک راه:
o کوچک بیشتر از O بزرگ میگوید: نه فقط «بدتر نیست» بلکه «در نهایت بسیار بهتر». شکل نسبت همین را با یک حد میگوید.
9 چه چیزی در یک ثانیه تمام میشود؟
یک رایانهٔ تند حدود یک میلیارد گام در ثانیه برمیدارد. چهار هزینه (ستونها) در چهار اندازهٔ ورودی (سطرها). n روی چهار اندازه میگردد. هر جمله را در این جدول داوری کن.
| ✓ | ✓ | ✓ | ✓ | |
| ✓ | ✓ | ✓ | ||
| ✓ | ✓ | |||
| ✓ |
تیک یعنی آن هزینه در آن n حداکثر یک میلیارد گام است: در حدود یک ثانیه تمام میشود.
فقط n log n از یک میلیون جان به در میبرد. ۲ به توان n میان ۲۰ و ۴۰ از یک میلیارد میگذرد (۲ به توان ۳۰ کمی بیش از ۱۰ به توان ۹ است)، و n فاکتوریل همان n برابر ۱۳. و n به توان دو در این اندازهها هرگز از ۲ به توان n جلو نمیزند: n به توان دو، o کوچکِ ۲ به توان n است.
10 تقریباً برابر
شش تابع، هر کدام در برابر همهٔ دیگران. f و g روی این شش تابع میگردند. هر جمله دربارهٔ آنها را داوری کن.
| ✓ | ✓ | |||||
| ✓ | ✓ | |||||
| ✓ | ||||||
| ✓ | ✓ | ✓ | ||||
| ✓ | ✓ | ✓ | ||||
| ✓ | ✓ | ✓ |
تیک یعنی تابع سطر همارز مجانبی تابع ستون است: نسبتشان به یک میل میکند.
افزودن جملهای از مرتبهٔ پایینتر نسبت را روی یک نگه میدارد، پس n همارز n + ۱ است و n به توان دو بهعلاوهٔ n همارز n به توان دو و (n + ۱) به توان دو. ضریب ثابت همارزی مجانبی را خراب میکند اما تتا را نه؛ برای همین ۲n در جدول تنها میماند: تتای n است اما همارز هیچکدام از بقیه نیست.
11 پنج رابطهٔ بازگشتی
پنج راه که هزینه میتواند به حالتهای کوچکتر وابسته باشد. هر کدام را به مرتبهای که به آن حل میشود وصل کن.
روی یک سطر بزن، بعد روی معنایش.
یکییکی کوچک شدن زنجیری با n سطح میدهد؛ نصف شدن log n سطح. آنچه در هر سطح اضافه میشود بقیه را تعیین میکند: یک ثابت، n، یا دو برابر شدن.
12 دو برابر شدن از فاکتوریل میبازد
این باید بگوید ۲ به توان n در برابر n فاکتوریل ناچیز است. یکی از کاشیها غلط است. پیدایش کن و درستش کن.
روی کاشیِ غلط بزن.
n فاکتوریل در هر گام در n ضرب میشود و ۲ به توان n فقط در ۲، پس نسبت به صفر میل میکند: o کوچک. تتا همآهنگی را ادعا میکند، اُمگا برعکسش را، و همارزی مجانبی نسبتی را که به یک میل کند؛ هر سه نادرستاند.
13 نصف کردن یک میلیون
این باید بگوید یک میلیون را چند بار میشود نصف کرد تا یک چیز بماند: حدود بیست. یکی از کاشیها غلط است. پیدایش کن و درستش کن.
روی کاشیِ غلط بزن.
۲ به توان ۲۰ حدود ۱٫۰۵ میلیون است، پس لگاریتم یک میلیون در پایهٔ دو حدود ۱۹٫۹ است. شش لگاریتم در پایهٔ ده میشد، و نیم میلیون فقط یک بار نصف کردن است، نه شمارش.
14 نگاهها در هزار
جستوجوی دودویی: یک نگاه، بعد همان کار روی نصف فهرست؛ یک چیز تنها یک نگاه میخواهد. برای ۱۰۲۴ چیز چند نگاه؟
T از ۲ برابر ۲، T از ۴ برابر ۳، و در کل T از ۲ به توان k برابر k + ۱ است. چون ۱۰۲۴ همان ۲ به توان ۱۰ است، جواب ۱۱ است: یکی بیش از لگاریتم n در پایهٔ دو، چون نگاه آخر به یک چیز تنها هم میشمارد.
15 سه ادعا، یکی درست
کدامیک از سه جمله دربارهٔ این f درست است؟
نسبت f به n به توان دو به ۳ میل میکند: از بالا و پایین کراندار، پس تتای n به توان دو؛ صفر نیست، پس o کوچک نیست؛ یک نیست، پس همارز n به توان دو نیست. جملهٔ درست همارزی این است که f همارز ۳ ضرب در n به توان دو است.
16 مقایسه با همهٔ قبلیها
جا دادن هر کارت تازه میان کارتهای مرتبشده تا ۱ + ۲ + … + n مقایسه میخواهد. این مجموع از چه مرتبهای رشد میکند؟
n ضرب در (n + ۱) بر دو برابر است با n به توان دو بر دو بهعلاوهٔ n بر دو، و جملهٔ n به توان دو بر دو میبرد: مجموع میان دو مضرب ثابت از n به توان دو میماند، پس تتای n به توان دو؛ در واقع همارز n به توان دو بر دو است.
17 هر جفت
وارسی هر جفت از n چیز برای یافتن تداخل، حدود n به توان دو بر دو وارسی میخواهد: از مرتبهٔ n به توان دو. آن را با نماد بنویس، بعد مقایسه کن.
یک راه:
تعداد جفتها انتخاب ۲ از n است، یعنی n ضرب در (n − ۱) بر دو. جملهٔ اصلیاش n به توان دو بر دو است، پس هزینه تتای n به توان دو و دقیقتر همارز مجانبی n به توان دو بر دو است.
18 هرگز سختتر نمیشود
یافتن یک واژه در جدول درهمسازی، هر چند واژه ذخیره شده باشد، حدوداً همان هزینه را دارد: هزینه زیر یک کران ثابت میماند. آن را با نماد بنویس، بعد مقایسه کن.
یک راه:
O بزرگ از یک ثابت میگوید هزینه حداکثر یک ثابت ضرب در یک است: کراندار، n هر چه باشد. بهتفصیل: کرانی مثل c هست که T از n هرگز از آن نمیگذرد.
19 بگو O بزرگ یعنی چه
تعریف: f، O بزرگِ g است وقتی که پس از یک نقطهٔ شروع، f هرگز از یک مضرب ثابت g بیشتر نشود. آن را با سورها بنویس، بعد مقایسه کن.
یک راه:
دو چیز وجود دارد، یک ثابت c و یک آستانهٔ n صفر، و بعد برای همهٔ n بزرگتر نابرابری برقرار است. ترتیب مهم است: c و n صفر یک بار انتخاب میشوند و باید برای هر n پس از آن کار کنند.
فصل تمام شد. این نمادها حالا مال تو هستند.
داستان خودت را بگو
دو راه برای یک کار (پیدا کردن یک کارت در یک دسته، مرتب کردن یک قفسه) را با هزینهشان بر حسب n توصیف کن و بگو کدام o کوچک دیگری است.
فقط روی همین دستگاه نگه داشته میشود.