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

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

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

وبلاگ

»

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