مسابقة البرمجة: التجارة (إعلانات)

إعلانات للمشاركين في مسابقة البرمجة .

إجراء الاختبار النهائي


في البداية ، سعينا لإجراء بطولة على مبدأ "كل واحد مع الآخر". ومع ذلك ، أعلن العديد من المشاركين عزمهم على الخضوع للمسابقة العديد من القرارات الضعيفة ، "المفسدين" ، والتي يلعب فيها القرار الرئيسي للمشارك بشكل جيد ، أو عبروا عن مخاوفهم من أن يقوم الآخرون بذلك. من الواضح أن مثل هذه الأعمال محظورة بموجب القواعد ، ولكن حتى لو تم التحايل على القواعد بطريقة أو بأخرى ، فإن هذا يتعارض مع روح المنافسة. تدور هذه المسابقة حول من هو الأفضل لكتابة برنامج واحد ، وليس من الذي سيثني "المشهد" لأنفسهم ، بعد تنزيل المزيد من "المفسدين".


على الرغم من أننا نستطيع وسنستخدم طرقًا مختلفة لتحديد "المفسدين" وحرمانهم من الأهلية ، هناك دائمًا احتمال ألا نكشف عن شيء ما. نود أن يكون الفائزون في المسابقة هم أولئك الذين يخترعون ويبرمجون خوارزميات أفضل ، وليس أولئك الذين هم أكثر إبداعًا في التحايل على القواعد.

لذلك ، قررنا إجراء الاختبار النهائي على مرحلتين. في مرحلة التأهيل ، بالنسبة لقيم المصنف المختارة عشوائيًا ، سيتم عقد دورة "لكل منها" ، ويعتبر الزوج (أ ، ب) مختلفًا عن (ب ، أ). وبالتالي ، سيتم إطلاق كل زوج (وفي كل طلب) على كل قيمة بذرية. ستكون نتيجة مرحلة التأهيل قائمة بالمشاركين الموجودين بترتيب تنازلي لمقدار النقاط المكتسبة (أي مقدار النقاط وليس عدد "الانتصارات").

ثم سيذهب أفضل المشاركين في K من القائمة إلى النهائيات ، حيث ستقام بطولة إضافية بينهم في M قيم أخرى مختارة عشوائيًا. سيتم تحديد المواقف النهائية بين هؤلاء المشاركين K فقط من خلال مجموع النقاط التي سجلوها في الجلسات بقيم بذور N + M فيما بينهم ، دون مراعاة الجلسات التي تنطوي على قرارات لم تصل إلى النهائي.

من ناحية ، سيجعل هذا من الممكن إجراء اختبار أشمل لمجموعة ضيقة من القرارات التي تدعي أنها حائزة على جوائز ، ومن ناحية أخرى ، سيحرم المفسدين من دعم الحلول التي تعتمد عليها.

سيتم الإعلان عن القيم المحددة لـ N و M و K لاحقًا ، لأنها تعتمد على عدد الحلول التي سيرسلها المشاركون إلينا.

ساحات التفاوض عبر الإنترنت


لقد أنشأنا العديد من الساحات الجديدة: standard_1s مشابه standard ، ولكن يراقب الامتثال لحد 1 ثانية لكل حركة (هذه الساحة تتطابق تمامًا مع شروط الاختبار النهائي) ؛ large large_1s - الساحات مع إعدادات "زيادة" في حال أراد أي شخص أن يجربها.

راجع قائمة الساحات في صفحة المشروع على GitHub.

لكل مجال ، تتوفر الإحصاءات "الحية" الآن لكل قرار يتم اتخاذه بشأنها (الروابط في العمود الأول من الجدول). تم تقديم الإحصائيات بتنسيق JSON القابل للقراءة آليًا ، ولن يكون من الصعب على المتسابقين الحصول على عرض البيانات التي تهمهم. مفتاح هذه البيانات هو تجزئة معرف العميل المحدد مع المعلمة --id . يوضح لك نظام اختبار التجزئة هذا في كل مرة تتصل فيها بالخادم. لكل مشارك ، يتم إعطاء العدد الإجمالي للجلسات المكتملة ( sessions ) ، وعدد الاتفاقات التي تم التوصل إليها ( agreements ) وإجمالي الدرجات ( score ) طوال الوقت ( all ) ولكل يوم فردي (UTC).

اختبار تحديثات النظام


اتبع محفوظات التحديث على GitHub: نقوم بانتظام بتصحيح العيوب التي وجدها المشاركون في نظام الاختبار. لا git pull بانتظام!

محادثة رسمية


لمناقشة المسابقة ، تم إنشاء قناة في Telegram: hola_challenge_haggling .

Source: https://habr.com/ru/post/ar415467/


All Articles