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

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

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

وبلاگ

»

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