جزيل الشكر لجميع المشاركين
في مسابقة البرمجة ! لم تكتمل عملية صنع القرار بعد ، ولكن في منتصف ليل 17 يوليو ، اتخذنا مجموعة القرارات التي كانت في ذلك الوقت وعقدنا دورة مصغرة بينهما. بلغ 82 قرارا.
لكن أولاً ، بعض الإعلانات.
تم تمديد المنافسة لمدة أسبوع
تم تمديد الموعد النهائي لاتخاذ القرارات حتى
27 يوليو 2018 ، 23:59:59 UTC. أيضا ، المواعيد النهائية التي سيتم من خلالها الإعلان عن نتائج المسابقة يتم تغييرها قبل أسبوع. لقد مددنا المنافسة لتحسين التغطية خلال موسم العطلات.
توضيحات الاختبار النهائي
بعد قبول العمل ، سيكون الاختبار أكثر شمولاً من التمهيدي الحالي.
قيم البذور
نحن ننشر طريقة نعد باستخدامها لتحديد قيم البذور للاختبار النهائي. يجب أن تكون هذه الطريقة غامضة ويمكن التحقق منها بسهولة ، ولكن لا يمكن التنبؤ بها. لذا ، سنأخذ أول تغريدة من
هذا تويتر ستظهر هناك بعد الموعد النهائي. من الصعب تصديق أننا تآمرنا مع جيري سبرينغر ، أليس كذلك؟ من التغريدة ، نأخذ النص فقط ، بدون صور وفيديو. إذا لم يكن هناك نص في التغريدة ، ولكن فقط صورة ، فالتقط التغريدات التالية. إعادة التغريد. لم يتم أخذ اسم حساب إعادة التغريد.
من نص التغريدات نحصل على القيم الأولية مثل هذا:
const random_js = require('random-js'); const text = 'The tweet goes here'; const bytes = Array.from(new Buffer(text)); const random = new random_js(random_js.engines.mt19937().seedWithArray(bytes)); for (let i = 0; i<200; i++)
سيتم استخدام عناصر التسلسل الناتج بالأرقام
الفردية ، مع الأرقام التي تبدأ من 1 (أي الأول والثالث والخامس وما إلى ذلك) كقيم بذور للجولة الأولى ،
وحتى مع
تلك كقيم بذور إضافية للنهائي.
في الجولة الأولى ، سيتم إطلاق كل زوج من الحلول المطلوبة على كل من قيم البذور 100 على الأقل (المزيد إذا كان لدينا وقت). سيتم استخدام 100 قيمة بذرة إضافية على الأقل في النهائي. الجلسات المنعقدة في الجولة الأولى بين القرارات التي وصلت للنهائي سيتم استخدامها في النهائي (ولكن ليس الجلسات بين المتأهلين للتصفيات النهائية والقرار الذي لم يصل إلى النهائي). وبالتالي ، ستقرر 200 قيمة بذرية على الأقل نتيجة المباراة النهائية.
اختيار المتأهلين للتصفيات النهائية
بعد الجولة الأولى ، سيتم فرز جميع القرارات حسب عدد النقاط التي تم تسجيلها. سيتم قبول عدد من القرارات ، بدءا من زعيم القائمة ، في النهائيات.
سيتم تطبيق القواعد التالية على اختيار المتأهلين للتصفيات النهائية. سيقرر عدد المتسابقين النهائيين أي القواعد تبين أنها
الأكثر صرامة (أي تخطي
الأقل ) لعدد القرارات.
- لا يزيد عن نصف الحلول.
- لا يزيد عن 50 حل.
- فقط الحلول التي تظهر نتائج أفضل من
example.js
.
النتائج الوسيطة
بالنسبة للاختبار الوسيط ، استخدمنا الأرقام الطبيعية من 1 إلى 50 كقيم بذور. تم تشغيل كل زوج مرتبة ، تتكون من حلول مختلفة ، على كل من هذه القيم. وهكذا ، ل 82 مشاركا ، تتألف البطولة من 332100 جلسة. شارك كل من الحلول في 8100 جلسة.
حتى الآن ، بدلاً من أسماء المشاركين - محددات الحلول. المعرف الخاص بك في الرسالة التلقائية التي تلقيتها بعد إرسال القرار. لا يُحظر الكشف في التعليقات على هذا المنشور أن مثل هذا القرار ومثل هذا القرار لك.
يرجى ملاحظة أنه في 59 و 60 و 61 مكان توجد نسخ من البرنامج النصي
example.js . ومن المثير للاهتمام أن 21 من 82 حلًا أظهرت نتائج أقل من مثالنا البدائي. (لماذا أظهرت ثلاث نسخ من نفس البرنامج النصي نتائج مختلفة قليلاً؟ لأن بعض الحلول تستخدم
Math.random
، ونتائج الجلسات التي تتضمنها غير قابلة للتكرار.)
يمكن رؤية جدول النتائج الوسيطة
على GitHub . وسيلة الإيضاح:
- S : مقدار النقاط المسجلة (هذا هو موضوع المنافسة)
- S / N : متوسط نتيجة الجلسة
- ج : تم الاتفاق على عدد الجلسات
- A / N : النسبة المئوية للجلسات التي تم الاتفاق عليها
- S / A : متوسط نتيجة الجلسة مع الاتفاق الذي تم التوصل إليه
- X : عدد الجلسات التي أنهىها هذا المشارك (بسبب الاستثناءات أو النتائج غير الصحيحة)
بالطبع ، لا يزال هناك وقت متبقي قبل نهاية المسابقة ، قد يتغير خلالها اصطفاف القوات. إذهب!