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

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

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

وبلاگ

»

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