الگوریتمستان

برنامه‌نویسی، طراحی الگوریتم و حل مسئله‌های الگوریتمی

 
در صورت ناخوانا بودن نوشته‌ها، از مرورگر دیگری استفاده کنید.
نوشته‌ها با برچسب وبلاگ نوشته‌ها با برچسب وبلاگ - الگوریتمستان الگوریتمستان الگوریتمستان
نوشته‌ها با برچسب «

وبلاگ

»

فرض کنید صفحه‌ی ۵ در ۵ از کلید شاسی‌های چراغ‌دار داریم و این کلیدها به نحوی به هم متصل هستند که وقتی کلیدی را فشار می‌دهیم، نه تنها وضعیت چراغ همان کلید که وضعیت چراغ چهار کلید بالا، پایین، راست و چپ هم (در صورت وجود) عوض می‌شوند؛ یعنی اگر چراغ روشن باشد، خاموش می‌شود و بالعکس. بازی Lights Out (یا Lights Off) روی چنین صفحه‌ای انجام می‌شود و به این ترتیب است که اگر یک سری از چراغ‌ها در ابتدای کار روشن باشند، چطور می‌توانیم با فشار دادن کلیدها همه‌ی چراغ‌ها را خاموش کنیم.

پیوند نوشت ۱: شما می‌توانید Lights Out را اینجا به صورت آنلاین بازی کنید.

ادامه ...

زبان برنامه‌نویسی ++C دو کلاس set و unordered_set را برای پیاده‌سازی مفهوم مجموعه (ظرفی با عناصر غیرتکراری) دارد.

کلاس set علاوه بر بررسی تکراری نبودن عناصر، آنها را به صورت مرتب ذخیره می‌کند. پس اگر بخواهیم برای نگه داشتن عناصری از کلاس دلخواه خودمان از set استفاده کنیم، باید حداقل عملگر > را سربارگذاری کرده باشیم تا ظرف set قابلیت تشخیص ترتیب عناصر را داشته باشد. اما گاهی تعریف کوچکتر بودن برای کلاس مقدور نیست یا از لحاظ مفهومی معنی ندارد. در چنین شرایطی می‌توانیم از کلاس unordered_set استفاده کنیم.

ادامه ...

یکی از چالش‌های مهم دوران دبیرستان به یاد داشتن مقدار سینوس و کسینوس زوایای مشهور بوده و هست. در این راستا روش‌هایی مانند محاسبه به کمک دست و تا کردن انگشتان پیشنهاد شده است که هر کدام از انگشتان نماد یک زاویه هستند. اما چنین روش‌هایی خود نیازمند به یاد داشتن قوانین آن است که باعث بالا رفتن احتمال خطا می‌شود.

جدول زیر الگوی ساده‌ی موجود در مقدار سینوس و کسینوس زوایای مشهور را نشان می‌دهد که به سادگی در ذهن می‌ماند.

محاسبه‌ی سینوس و کسینوس زاویه‌های مشهور به روش ساده

ادامه ...

ما معمولا برای توضیح رشد با سرعت زیاد از عبارت «رشد نمایی» استفاده می‌کنیم. رشد نمایی یعنی هر گام که پیش می‌رویم، از گام $n$ به گام $n + 1$، اندازه دو یا هر چند برابری می‌شود که به آن پایه یا مبنای رشد گفته می‌شود. این پایه همیشه ثابت است؛ یعنی چه مرحله‌ی اول باشیم و چه مرحله‌ی هزارم، همیشه مرحله‌ی بعدی ضرب در عدد ثابتی می‌شود. در حالت کلی می‌توان نوشت:

\[ f(n ) = b \times f(n - 1 ),\; f(0) = c \]

که منظور از b همان پایه‌ی رشد است. مثلا اگر $b = 2$ باشد و $f(0 ) = 1$، به تابع $f(n) = 2^n$ می‌رسیم. این تعریف را با تعریف فاکتوریل مقایسه کنید:

ادامه ...

الگوریتمستان در تلگرام

   

 

پیوند کوتاه:
»  سوال Free Ticket
راهنمای حل سوال Free ticket، از سوالات المپیاد ملی کامپیوتر هندوستان
»  sync_with_stdio در زبان ++C
نکته‌ای در مورد کارایی عملیات ورودی و خروجی در زبان برنامه‌نویسی ++C و عملکرد تابع sync_with_stdio
»  نکته‌ای در محاسبه‌ی زمان اجرای کد
در مورد تفاوت توابع clock و time در زبان برنامه‌نویسی ++C برای محاسبه‌ی زمان اجرای برنامه
»  ابزار VJudge
معرفی وب‌سایت Virtual Judge برای برگزاری مجازی مسابقه‌ی برنامه‌نویسی به سبک مسابقات ACM-ICPC
»  هدر فایل bits/stdc++.h
معرفی هدرفایل bits/stdc++.h برای کاهش زمان آماده شدن کد مسابقات برنامه‌نویسی
»  نکته‌ای از مسأله‌ی Graphical Editor
استفاده از stringstream در حل سوالات مسابفات برنامه‌نویسی با زبان برنامه‌نویسی ++C
»  ابزار UVA Toolkit
معرفی وب‌سایت UVA Toolkit برای کمک به حل سوالات برنامه‌نویسی UVA Online Judge
»  نکته‌ای از مسأله‌ی LC-Display
نکته‌ای در باب روش ذخیره کردن ورودی یک مسأله
»  تابع popen در زبان ++C
روش اجرای برنامه‌ای دیگر داخل کد ++C و استفاده از خروجی آن
»  نکته‌ای در استفاده از map
نکته‌ای در مورد استفاده از ساختمان داده‌ی map با مثالی به زبان برنامه‌نویسی ++C
برچسب‌ها
#ماتریس #مسابقه برنامه‌نویسی #الگوریتم‌های بازگشتی #سوالات مسابقات برنامه‌نویسی بیان #تمرین مسابقه برنامه‌نویسی #الگوریتم فلوید-وارشال #الگوریتم‌های گراف #گراف #صف #ویدئوی آموزشی #نمونه سوالات مسابقه برنامه‌نویسی #مسابقات برنامه‌نویسی ACM #حل سوالات ACM-ICPC #کتاب مسابقات برنامه‌نویسی #آموزش ساختمان داده‌ها #ترجمه‌ی فارسی سوالات ACM #تکنیک‌های طراحی الگوریتم #سوالات UVa Online Judge #آمادگی مسابقه ACM #کتابخانه قالب استاندارد ++C #ترجمه فارسی سوالات کتاب Programming Challenges #حل مسئله‌‌ی الگوریتمی #ترجمه‌ی فارسی سوالات UVa Online Judge #ساختمان داده #سوالات برنامه‌نویسی #الگوریتم‌های مسیریابی #الگوریتم دایکسترا #مسأله‌های برنامه‌نویسی #مسأله‌های الگوریتمی #حل سوالات مسابقات برنامه‌نویسی #حل سوالات UVa Online Judge #نمونه سوال مسابقه ACM #الگوریتم‌های برنامه‌نویسی پویا #کتاب الگوریتم #معرفی وب‌سایت #محاسبات ریاضی #مسئله‌ی کوله‌پشتی #جستجوی اول سطح #تمرین المپیاد کامپیوتر #کتاب الکترونیکی #مسئله‌های الگوریتمی #درخت پوشا #جستجوی اول عمق #ترجمه‌ی فارسی سوالات برنامه‌نویسی #درخت‌ها #پیمایش گراف #تمرین طراحی الگوریتم #الگوریتم‌های مرتب‌سازی #آمادگی المپیاد کامپیوتر #برنامه‌نویسی #آموزش طراحی الگوریتم #الگوریتم‌های حریصانه #الگوریتم‌های عقبگرد #الگوریتم‌های کوتاهترین مسیر #وبلاگ #منبع آموزشی #سوالات مسابقات ACM-ICPC #آموزش الگوریتم #دانلود کتاب #سوالات چالشی برنامه‌نویسی #آمادگی مسابقه برنامه‌نویسی #مسئله‌های برنامه‌نویسی #تمرین مسابقه‌ی برنامه‌نویسی ای‌سی‌ام #برنامه‌نویسی ++C #حل سوالات Timus Online Judge #الگوریتم‌های تقسیم و غلبه #مسابقه برنامه نویسی #نمونه سوال فارسی مسابقات ACM #الگوریتم #آموزش برنامه‌نویسی ++C #مسابقات برنامه‌نویسی #نمونه سوال فارسی مسابقات برنامه‌نویسی #نمونه سوال فارسی مسابقه‌ی ACM #Python #نکات برنامه‌نویسی