در سالهای اخیر، مسابقات برنامه نویسی به یکی از مهمترین عرصههای سنجش تواناییهای فنی و رقابتی تبدیل شدهاند. اما چیزی که این رقابتها را جذابتر میکند، وجود یک سیستم امتیازدهی دقیق و عادلانه است که بتواند سطح واقعی مهارت شرکتکنندگان را بازتاب دهد. کوئرا با طراحی و بهروزرسانی سیستم «امتیاز کوئرایی» یا QRate، تلاش کرده تا بستری شفاف و منصفانه برای ارزیابی توانمندیهای برنامهنویسان در حوزههای مختلف فراهم کند.
جدول امتیازات مسابقات کوئرا چطور کار میکند؟
سیستم امتیازدهی این جدول امتیازات، با نام «امتیاز کوئرایی» یا QRate شناخته میشود و آخرین نسخه آن در تابستان ۱۴۰۴ با هدف ارزیابی جامع توانمندی برنامهنویسی شما در هریک از ۶ حوزه اصلی برنامهنویسی رونمایی شده است.
- Algorithm
- Back-end
- Front-end
- AI
- DevOps
- Mobile
امتیاز کوئرایی چطور محاسبه میشود؟
امتیازدهی در Qrate بر پایه الگوریتم Elo-MMR است که یک روش آماری پیشرفته بر اساس مدل سنتی Elo است. سیستم امتیازدهی ELO-MMR به این صورت کار میکند که هر شرکتکننده یک امتیاز اولیه دارد و بعد از هر بار شرکت در مسابقه امتیاز او در مقایسه با عملکرد سایر کاربران بهروزرسانی میشود. بر همین اساس، ابتدا طبق سابقه شما در مسابقات گذشته، احتمال موفقیت یا شکست شما در برابر سایر کاربران محاسبه میشود؛ بعد از پایان مسابقه، رتبهی واقعی شما با رتبهای که سیستم از روی امتیاز قبلی پیشبینی کرده، مقایسه میشود؛ اگر بهتر از انتظار ظاهر شوید، امتیازتان افزایش پیدا میکند و اگر پایینتر از انتظار باشید، امتیازتان کاهش مییابد. بنابراین تغییر امتیاز فقط به امتیاز قبلی و رتبهی نهایی شما در مسابقه بستگی دارد و تعداد سؤالات حلشده تنها به صورت غیرمستقیم (از طریق تعیین رتبهی شما) اثر میگذارد.
امتیاز شما در جدول امتیازات مسابقات کوئرا کنار نام کاربریتان نمایش داده میشود. امتیاز شما در هر یک از ۶ حوزه اصلی الگوریتم، بکاند، فرانتاند، هوشمصنوعی، دواپس و موبایل بهصورت جداگانه محاسبه میشود. برای شرکت کنندگانی که تاکنون در هیچ مسابقهای شرکت نکردهاند، امتیاز ۱۵۰۰ در نظر گرفته میشود. بر اساس امتیاز کاربران در دستههای زیر قرار میگیرند:
- اسطوره: بیشتر یا مساوی ۲۶۰۰ امتیاز
- استاد بزرگ: بیشتر یا مساوی ۲۳۰۰ امتیاز
- استاد: بیشتر یا مساوی ۲۰۰۰ امتیاز
- حرفهای: بیشتر یا مساوی ۱۷۰۰ امتیاز
- پدیده: بیشتر یا مساوی ۱۴۰۰ امتیاز
- تازهکار: کمتر از ۱۴۰۰ امتیاز
چطور میتوانم امتیاز کوئراییام را بیشتر کنم؟
چندین عامل کلیدی و مهم وجود دارد که باعث میشود یک نفر در این جدول، امتیاز بالاتری کسب کند. این فاکتورها به طور خلاصه عبارتند از:
۱. کسب رتبه بالا (مهمترین عامل)
مهمترین و پایهایترین عامل، رتبه نهایی شما در مسابقه است. هرچه رتبه شما به عدد ۱ نزدیکتر باشد، امتیاز بیشتری کسب میکنید. تمام جزئیات دیگر (مانند امتیاز نهایی، زمان و…) تنها برای مشخص شدن این رتبه به کار میروند و سیستم امتیازدهی فقط رتبه نهایی شما را در نظر میگیرد.
۲. قدرت رقبا (ریتینگ حریفان)
این سیستم از منطق Elo پیروی میکند، به این معنی که:
- شکست دادن رقبای قوی: اگر شما شرکتکنندگانی را که امتیاز بالاتری از شما دارند شکست دهید (یعنی رتبه بهتری از آنها کسب کنید)، امتیاز بسیار زیادی به دست میآورید.
- باختن به رقبای ضعیف: اگر از شرکتکنندگانی که امتیاز بسیار پایینتری از شما دارند شکست بخورید (یعنی رتبه بدتری از آنها کسب کنید)، امتیاز زیادی از دست خواهید داد.
۳. تعداد شرکتکنندگان در مسابقه
عملکرد خوب در یک مسابقه بزرگ بسیار ارزشمندتر از همان عملکرد در یک مسابقه کوچک است.
- مثال: کاربری با کسب رتبه ۲ در مسابقهای با بیش از ۱۰۰۰ شرکتکننده، توانست در یک مسابقه بیش از ۱۰۰۰ امتیاز کوئرایی به دست آورد. این نشان میدهد که سیستم، درخشش در یک میدان رقابتی بزرگ را به درستی شناسایی کرده و پاداش بزرگی برای آن در نظر میگیرد.
۴. امتیاز کوئرایی فعلی خود شما (سطح انتظار سیستم)
سیستم بر اساس امتیاز فعلی شما، یک “سطح انتظار” از عملکردتان دارد:
- اگر امتیاز پایینی دارید: و در یک مسابقه رتبه بسیار خوبی کسب کنید (عملکردی فراتر از انتظار)، سیستم به شما امتیاز بسیار زیادی میدهد تا سریعاً شما را به سطح واقعیتان نزدیک کند.
- اگر امتیاز بالایی دارید: و عملکردی ضعیفتر از حد انتظار داشته باشید، امتیاز از دست خواهید داد. برای مثال، کاربری با وجود کسب رتبه ۹ در یک مسابقه، ۷ امتیاز از دست داد، زیرا ریتینگ او به قدری بالا بود که سیستم از او انتظار رتبهای بهتر از ۹ را داشت.
- اگر امتیاز بسیار بالایی دارید: و در مسابقه اول شوید (عملکردی مطابق انتظار)، امتیاز کمی دریافت میکنید، زیرا سیستم از قبل میدانست شما قوی هستید.
نتیجهگیری نهایی
در نهایت، سیستم به دو روش اصلی به کاربران امتیاز بالا میدهد:
- ثبات و عملکرد عالی در طول زمان: کاربرانی که با شرکت در دهها مسابقه و کسب رتبههای خوب به طور مداوم، پله پله به بالای جدول رسیدهاند.
- یک عملکرد انفجاری و فوقالعاده: کاربرانی که با یک یا دو نتیجه درخشان در مسابقات بسیار بزرگ و مهم، توانستند جهش بزرگی در امتیاز خود ایجاد کنند.
اینکه سیستم به هر دو مسیر پاداش میدهد، نشاندهنده سلامت و صحت طراحی آن است.
چرا امتیازدهی Qrate از بقیه روشها بهتر است؟
الگوریتم Elo-MMR پس از بررسی و مقایسه با بیش از ۱۰ الگوریتم دیگر از جمله سیستمهای مورد استفاده در شطرنج، فوتبال آمریکایی و مسابقات برنامهنویسی جهانی مانند Codeforces و TopCoder انتخاب شده است. این روش تعادلی بین سادگی و سختی برقرار میکند و به دلیل انعطافپذیری، میتواند با تعداد شرکتکنندگان و سطوح مهارت مختلف سازگار باشد. همچنین Elo-MMR با استفاده از یک مدل آماری، عدم قطعیت عملکرد بازیکنان جدید را در نظر میگیرد. این ویژگی برای مسابقاتی مانند کوئرا که تعداد کاربران جدید در آنها زیاد است، بسیار مفید است. همچنین، نتایج آزمایشهای عملی روی دادههای کوئرا نشان داده است که Elo-MMR در مقایسه با روشهای مشابه مانند TrueSkill و Glicko، عملکرد بهتری در دقت و مقایسهپذیری امتیازها دارد.