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

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

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

وبلاگ

»

فرض کنید صفحه‌ی ۵ در ۵ از کلید شاسی‌های چراغ‌دار داریم و این کلیدها به نحوی به هم متصل هستند که وقتی کلیدی را فشار می‌دهیم، نه تنها وضعیت چراغ همان کلید که وضعیت چراغ چهار کلید بالا، پایین، راست و چپ هم (در صورت وجود) عوض می‌شوند؛ یعنی اگر چراغ روشن باشد، خاموش می‌شود و بالعکس. بازی 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
برچسب‌ها
#ترجمه فارسی سوالات کتاب Programming Challenges #مسابقات برنامه‌نویسی ACM #صف #درخت پوشا #منبع آموزشی #جستجوی اول عمق #برنامه‌نویسی #سوالات برنامه‌نویسی #مسئله‌های برنامه‌نویسی #حل سوالات مسابقات برنامه‌نویسی #وبلاگ #جستجوی اول سطح #نمونه سوالات مسابقه برنامه‌نویسی #سوالات مسابقات ACM-ICPC #الگوریتم فلوید-وارشال #گراف #الگوریتم #حل مسئله‌‌ی الگوریتمی #تکنیک‌های طراحی الگوریتم #مسئله‌های الگوریتمی #سوالات چالشی برنامه‌نویسی #ترجمه‌ی فارسی سوالات ACM #آموزش برنامه‌نویسی ++C #مسئله‌ی کوله‌پشتی #حل سوالات UVa Online Judge #الگوریتم‌های مسیریابی #مسأله‌های الگوریتمی #الگوریتم دایکسترا #الگوریتم‌های تقسیم و غلبه #مسابقه برنامه‌نویسی #الگوریتم‌های کوتاهترین مسیر #آمادگی المپیاد کامپیوتر #تمرین المپیاد کامپیوتر #ساختمان داده #برنامه‌نویسی ++C #تمرین طراحی الگوریتم #ویدئوی آموزشی #پیمایش گراف #الگوریتم‌های مرتب‌سازی #الگوریتم‌های عقبگرد #آمادگی مسابقه ACM #آموزش طراحی الگوریتم #مسأله‌های برنامه‌نویسی #آموزش ساختمان داده‌ها #آموزش الگوریتم #نمونه سوال فارسی مسابقات ACM #کتابخانه قالب استاندارد ++C #حل سوالات Timus Online Judge #تمرین مسابقه‌ی برنامه‌نویسی ای‌سی‌ام #نمونه سوال مسابقه ACM #الگوریتم‌های گراف #نمونه سوال فارسی مسابقه‌ی ACM #ترجمه‌ی فارسی سوالات برنامه‌نویسی #معرفی وب‌سایت #مسابقه برنامه نویسی #نمونه سوال فارسی مسابقات برنامه‌نویسی #دانلود کتاب #درخت‌ها #کتاب مسابقات برنامه‌نویسی #آمادگی مسابقه برنامه‌نویسی #کتاب الکترونیکی #محاسبات ریاضی #تمرین مسابقه برنامه‌نویسی #الگوریتم‌های بازگشتی #ماتریس #مسابقات برنامه‌نویسی #کتاب الگوریتم #سوالات مسابقات برنامه‌نویسی بیان #الگوریتم‌های برنامه‌نویسی پویا #حل سوالات ACM-ICPC #سوالات UVa Online Judge #الگوریتم‌های حریصانه #Python #نکات برنامه‌نویسی #ترجمه‌ی فارسی سوالات UVa Online Judge