ForHosting KIT · أدوات المطورين

اختيار فائز مسابقة بترجيح ونتيجة قابلة للتكرار

تختار أداة السحب هذه اسمًا واحدًا من قائمة مرتبة، وتعيد النتيجة نفسها كلما بقيت القائمة والأوزان والبذرة من دون تغيير.

● Betaمجاني · داخل متصفحك
استخدمها من الويبAPIالبريدTelegramالتطبيق قريبًا

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

إعداد قائمة مرتبة بأوزان مطابقة للقواعد

ابدؤوا بصف واحد لكل مشارك، وحافظوا على ترتيب مقصود وثابت للصفوف. يجب أن يحتوي كل صف على اسم غير فارغ. تمثل القيمة الاختيارية entries عددًا صحيحًا موجبًا؛ اتركوها من دون تحديد لمنح إدخال واحد، واستخدموا اثنين لمضاعفة وزن الاختيار، وهكذا. يشغل المشارك الذي لديه خمسة إدخالات خمسة مواضع في مجموعة التذاكر الافتراضية، بينما يشغل صاحب الإدخال الواحد موضعًا واحدًا. لا تدمج الأداة الأسماء المكررة، فقد تمثل سجلات مستقلة ومشروعة، كما أن دمجها من دون تنبيه يغير الاحتمالات المعلنة. إذا كان المصدر قد يتضمن تكرارًا، فقرروا قبل السحب ما إذا كانت السجلات ستدمج، ووثقوا ذلك في ملاحظات الحملة. ثبتوا أيضًا القائمة النهائية وترتيبها قبل إعلان البذرة. إن فرز الصفوف أو إضافة صف أو حذفه أو تعديل اسم أو تغيير عدد الإدخالات يبدل النطاقات المرجحة، وقد يغير الفائز. يقبل الحساب حتى 10,000 صف ويتحقق من كل وزن بدل تقريب الكسور أو قبول صفوف بوزن صفر. وبهذا يكون العقد واضحًا: يشارك كل صف مرسل فعلًا، ويسهم كل عدد معلن مباشرة في فرصة صاحبه.

استخدام بذرة لجعل السحب قابلًا للتكرار

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

تسجيل نتيجة الفوز والتحقق منها

تتضمن النتيجة اسم الفائز، وفهرس صفه الذي يبدأ من صفر، وموضع الإدخال المرجح المختار الذي يبدأ من صفر أيضًا، وإجمالي الإدخالات، وقيمة hash العددية المشتقة من البذرة. احتفظوا بالمدخل الكامل مع هذه الحقول في سجل المسابقة. يستطيع المراجع إرسال الصفوف المرتبة نفسها والبذرة ذاتها، والتأكد من الإجمالي، والحصول على الفائز نفسه من دون الاعتماد على لقطة شاشة أو زر عشوائي غير موضح. يميز فهرس الصف كذلك بين سجلين يحملان الاسم الظاهر نفسه، بينما يبين الموضع المرجح أين وقع الاختيار داخل مجموعة التذاكر الافتراضية. إذا اختلفت إعادة التشغيل، فقارنوا البيانات المحفوظة حرفًا بحرف؛ فحتى إزالة مسافة من اسم، أو نقل صف، أو تعديل وزن، أو تغيير حالة حرف في البذرة يعني أن مدخل السحب مختلف. تناسب نسخة المتصفح الاختيار اليدوي الشفاف، بينما تبلغ كلفة API مقدار $0.002 لكل طلب عند الحاجة إلى أتمتة الإجراء نفسه في برنامج للحملات أو سجل للمراجعة. وفي القناتين لا تستخدم الخوارزمية شبكة ولا وقتًا حاليًا ولا حالة قابلة للتغيير، ولذلك لا تؤثر بيئة التنفيذ أو تاريخه في الإجابة.

سحب جائزة على شبكات التواصل

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

تطبيق قواعد الإدخالات الإضافية

امنحوا أعدادًا أكبر للإجراءات المؤهلة مع إبقاء الاختيار متناسبًا مع الأوزان المسجلة.

مراجعة اختيار حملة ترويجية

احفظوا المدخل المرتب وبيانات hash المعادة حتى يتمكن طرف آخر من إعادة إنتاج النتيجة المعلنة بصورة مستقلة.

ما كلفة عملية سحب واحدة؟

سعر API هو $0.002 لكل طلب. ويمكن أيضًا تشغيل الحساب الحتمي نفسه مجانًا في المتصفح.

ماذا يحدث عند حذف عدد الإدخالات؟

يحصل ذلك المشارك على إدخال واحد. ويجب أن تكون الأوزان المحددة أعدادًا صحيحة موجبة.

هل تختار البذرة نفسها الفائز نفسه دائمًا؟

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

هل يؤثر تغيير ترتيب المشاركين؟

نعم. يحدد الترتيب نطاق كل مشارك في المجموعة المرجحة، ولذلك ينتج عن إعادة ترتيب الصفوف مدخل سحب مختلف.

هل هذا السحب عشوائي من منظور التشفير؟

لا. إنه اختيار حتمي وشفاف صمم لسهولة التكرار. وعندما تكون صعوبة التوقع مهمة، استخدموا مصدر بذرة لا يستطيع أحد التلاعب به.

لماذا تبقى الأسماء المكررة منفصلة؟

تحافظ الأداة على كل صف كما ورد لأن السجلات المكررة قد تكون مقصودة. ويحدد الفهرس المعاد الصف الفائز بدقة.

كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.

POSThttps://api.kit.forhosting.com/game/giveaway-winner-pick

صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.

curl -X POST https://api.kit.forhosting.com/game/giveaway-winner-pick \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"entrants":[{"name":"Avery","entries":1},{"name":"Blake","entries":3},{"name":"Casey"}],"seed":"spring-campaign-2026"}'
{
  "entrants": [
    {
      "name": "Avery",
      "entries": 1
    },
    {
      "name": "Blake",
      "entries": 3
    },
    {
      "name": "Casey"
    }
  ],
  "seed": "spring-campaign-2026"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "game.giveaway_winner_pick",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.

لكل طلب$0.002

السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.

max_items10000
HTTPالرمزالمعنى
401unauthorizedمفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك.
402insufficient_balanceرصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة.
404unknown_typeنوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب.
429rate_limitedتجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة.

اطّلع على توثيق KIT الكامل ←