بستن پنجره
فرادرس - مجموعه آموزش‌های ویدئویی  مهندسی کامپیوتر - طراحی الگوریتم - ساختمان داده
بستن پنجره     نوشته‌های پربازدید اخیر

»    محاسبه‌ی دترمینان ماتریس

»    مرتب‌سازی ادغامی

»    اشاره‌گرها در زبان ++C

»    مسابقه‌ی برنامه‌نویسی آنلاین Codeforces Round 417

»    لیست پیوندی

»    مرتب‌سازی حبابی

»    الگوریتم فلوید-وارشال

بستن پنجره
وبگاه
اشتراک‌گذاری در LinkedIn     Cloob     اشتراک‌گذاری در Twitter
اشتراک‌گذاری در Facebook     ارسال با Telegram     Google Plus
بستن پنجره
وبگاه     این صفحه
اشتراک‌گذاری در LinkedIn     Cloob     اشتراک‌گذاری در Twitter     اشتراک‌گذاری در Facebook     ارسال با Telegram     Google Plus
19551.00 4.31 5.00
وبگاه آموزشی برنامه‌نویسی، طراحی الگوریتم و آمادگی مسابقات برنامه‌نویسی الگوریتمستان الگوریتمستان الگوریتمستان FB Twitter Google
» 

مسأله‌ی انتخابات

بررسی مسأله‌ی انتخابات، از سوالات مسابقه‌ی برنامه‌نویسی ACM-ICPC 2016  سایت تهران

مسأله

    جناب خان که با کسب و کار لبوی خود میلیاردر شده است، می‌خواهد رئیس جمهور شود! در کشور او که از چندین ایالت تشکیل شده است، از روشی با عنوان هیئت انتخاب (یا هیئت الکترال) برای انتخاب رئیس جمهور استفاده می‌شود. در چنین ساختاری شمارش رأی در هر ایالت به صورت مستقل انجام می‌شود و هر ایالت متناسب با جمعیت خود تعدادی نماینده در هیئت انتخاب کنندگان رئیس جمهور دارد. تمام نمایندگان یک ایالت در نهایت به نامزدی رأی می‌دهند که در آن ایالت اکثریت آرا را کسب کرده باشد. اگر نامزدها رأی برابر داشته باشند، هر ایالت قوانین خاص خود برای انتخاب نهایی را دارد. در نهایت رئیس جمهور کسی است که بیش از نصف مجموع رأی‌های هیئت انتخاب را از آن خود کند.

ادامه ...
» 

مسأله‌ی اعداد اردوش

بررسی مسأله‌ی اعداد اردوش (Erdos Numbers)  یا فاصله‌ی همکاری اردوش از سوالات آمادگی مسابقات برنامه‌نویسی موجود در کتاب Programming Challenges  و وبسایت UVa Online Judge

مسأله

    پل اردوش (اردیش - Paul Erdős ) ریاضیدان مشهور و برجسته‌ی قرن بیستم است که تا پایان عمر خود تلاش گسترده‌ای برای انتشار مقالات علمی داشت و همکاری با وی در انتشار مقاله یک افتخار بزرگ برای هر ریاضیدان محسوب می‌گردد.

ادامه ...
» 

ظرف‌ها در ++C

معرفی انواع ظرف‌ها (نگهدارنده‌ها - containers)  در زبان برنامه‌نویسی ++C

منظور از ظرف یا نگهدارنده (Container)  ساختمان داده‌ای‌ست که دسته‌ای از اطلاعات را در خود نگه می‌دارد. آنچه که این ساختمان‌ها را از هم متمایز می‌کند، نوع تخصیص حافظه، نوع دسترسی و کارایی درج و حذف عنصر در آنها است که به برخی از آنها کاربری‌های ویژه می‌دهد.

    در ادامه با انواع این نوع ساختمان داده‌ها در زبان برنامه‌نویسی ++C  نسخه‌ی C++11  آشنا می‌شویم. با توجه به گسترده بودن این بحث، جزئیات بیشتر هر کلاس را در «پیوندها برای مطالعه‌ی بیشتر» بخوانید.

    توجه: تمامی کلاس‌های بحث شده در کتابخانه‌ی قالب استاندارد (STL)  تعریف شده و در فضای نام std  قرار دارند.

  

ادامه ...
» 

دنباله‌ی اعداد فیبوناچی

بررسی الگوریتم‌های محاسبه‌ی دنباله‌ی اعداد فیبوناچی و کارایی آنها

بسیاری از فرآیندهای طبیعی از جمله ترکیب ساختار بدن موجودات زنده نظم مشخصی دارند و از دنباله‌ی اعدادی تبعیت می‌کنند که امروزه با نام دنباله‌ی اعداد فیبوناچی (فیبوناتچی - Fibonacci)  شناخته می‌شود. مشهورترین خاصیت این اعداد نسبت دو جمله‌ی متوالی آنها به ازای جملات بزرگ دنباله است که به عدد طلایی مشهور است.

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

    تعریف: دنباله‌ی اعداد فیبوناچی روی اعداد حسابی به صورت زیر تعریف می‌شود:

\[ F_n= \left \{\begin{matrix} F_{n-1} + F_{n-2} & & & \; n > 1\\ 1 & & & \; n = 1 \\ 0 & & & n = 0 \end{matrix}\right. \]  

ادامه ...
» 

فایل سرآیند algorithm

معرفی فایل سرآیند algorithm  از کتابخانه قالب استاندارد زبان برنامه‌نویسی ++C  به همراه نمونه کد

فایل سرآیند (هدر فایل) algorithm  از جمله فایل‌های سرآیند تعاریف کتابخانه‌ قالب استاندارد (STL)  زبان برنامه‌نویسی ++C ‌ است که به طور عمده شامل توابعی برای کار با مجموعه‌ای از داده‌ها (آرایه‌ها و لیست‌ها) است. با استفاده از این توابع به راحتی می‌توان با تنها یک خط کد عملیات جستجو، مرتب‌سازی، شمارش و بررسی یک خاصیت در تمامی داده‌های یک بازه‌ی مشخص را انجام داد.

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

      

ادامه ...
» 

مسأله‌ی بشکه‌های آب

بررسی مسأله‌ی بشکه‌های آب (Water Barrels) ، از سوالات مسابقات برنامه‌نویسی بیان

مسأله

    $n$  بشکه‌ی آب با تعدادی لوله به هم وصل شده‌اند. هر بشکه استوانه‌ای عمودی با سطح مقطع یک متر مربع و ارتفاع نامحدود است که با عدد یکتا بین 1  تا $n$  شماره‌گذاری شده است. $i$- امین لوله بشکه‌ی $ x_i $  و $y_i$  را به هم متصل می‌کند. یک سر این لوله در ارتفاع $h_i$  متر به بشکه‌ی $ x_i $  متصل است و سر دیگر آن در همان ارتفاع به بشکه‌ی $y_i$  متصل است. در زمان صفر بشکه‌ها خالی هستند و یک جریان آب به صورت پیوسته با سرعت یک متر مکعب بر ساعت در بشکه‌ی شماره‌ی یک می‌ریزد. اگر آب بشکه‌ای به ارتفاع لوله‌ای برسد، آب در لوله جریان پیدا می‌کند و می‌تواند وارد بشکه‌ی دیگر شود. فرض کنید قطر لوله‌ها ناچیز است و سرعت آب در لوله‌ها بسیار زیاد است.

ادامه ...
» 

مسأله‌ی تاریخچه‌ی جدول

بررسی مسأله‌ی تاریخچه‌ی جدول (Grid History) ، از سوالات مسابقات برنامه‌نویسی بیان

مسأله

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

ادامه ...

وبگاه آموزشی مسابقه‌ی ای‌سی‌ام     وبگاه داوری آنلاین ایرانی     وبلاگ رسمی مسابقه‌ی منطقه‌ای برنامه‌نویسی دانش‌جویی ای‌سی‌ام، سایت تهران
وبگاه بایگانی مسابقات برنامه‌نویسی ACM     UVA Online Judge     Codeforces
TopCoder     المپدیا - دانش‌نامه‌ی المپیاد کامپیوتر ایران     Algorithmist