حاسبة توزيع المقاعد بطريقة Sainte-Laguë مجانًا
مع 5000 و3000 و2000 صوت و5 مقاعد، تمنح طريقة سانت لاغو الأحزاب الثلاثة 3 و1 و1 من المقاعد. أدخل أصوات كل حزب وعدد المقاعد لترى من يفوز بكل مقعد وبأي حاصل قسمة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
توزّع المقاعد البرلمانية بطريقة أعلى المتوسطات Sainte-Laguë (Webster) مع مقسوم أول معدَّل اختياريًا. مجاني وحتمي وخاص داخل متصفحك. لا حاجة إلى حساب.
كيف توزّع طريقة سانت لاغو المقاعد
سانت لاغو، وتُسمى أيضًا طريقة ويبستر، من طرق أعلى المتوسطات: تُمنح المقاعد واحدًا تلو الآخر، ويذهب كل مقعد إلى الحزب صاحب أعلى حاصل قسمة في تلك اللحظة. وحاصل قسمة الحزب هو أصواته مقسومة على ضعف عدد مقاعده الحالية مضافًا إليه واحد، فتكون القواسم 1 و3 و5 و7 وهكذا. ومع 5000 و3000 و2000 صوت و5 مقاعد، تذهب المقاعد الثلاثة الأولى إلى A وB وC بأصواتها كاملة، ثم يفوز A بالرابع بقسمة 5000 على 3، وبالخامس بحاصل قسمة قدره 1000. والنتيجة 3 و1 و1.
الصيغة المعدّلة والأخطاء الشائعة
تقسم الصيغة المعدّلة أصوات كل حزب على 1.4 بدل 1 عند حساب مقعده الأول، فيصبح الفوز به أصعب، ولا تتغير القواسم التالية. وأكثر الأخطاء شيوعًا عند الحساب اليدوي القسمة على 2 ثم 3 ثم 4 بدل 3 ثم 5 ثم 7 بعد فوز الحزب بمقعد، وهو ما ينتج طريقة مختلفة. ومن الأخطاء أيضًا نسيان إعادة حساب حاصل قسمة الفائز بعد كل مقعد. وتعرض الحاسبة كل مقعد مع الفائز به وحاصل القسمة لتتحقق من كل خطوة.
حالات الاستخدام
الواجبات والاختبارات
تحقق من المسائل الكمّية الكلاسيكية بسرعة بإجابات ثابتة قابلة لإعادة الإنتاج.
الأتمتة
استدعِ الدالة النقية نفسها من السكربتات دون تثبيت جدول بيانات أو نظام جبر رمزي (CAS).
الأسئلة الشائعة
هل هذه الأداة مجانية؟
نعم. تعمل فئة tier A بالكامل داخل متصفحك دون حساب.
هل تتصل بالشبكة؟
لا. يُبقي محرك parse كل شيء على جهازك.
ما طريقة سانت لاغو المعدّلة؟
هي الطريقة نفسها مع تغيير واحد: يُحسب المقعد الأول لكل حزب بقسمة أصواته على 1.4 بدل 1. وهذا يجعل الفوز بالمقعد الأول أصعب، بينما تبقى القواسم التالية 3 و5 و7 وهكذا.
هل يمكنني معرفة كيف حُسم كل مقعد؟
نعم. إلى جانب التوزيع النهائي، تعرض الحاسبة كل مقعد بالترتيب مع الحزب الذي فاز به وحاصل القسمة الذي فاز به، لتتحقق من التمرين أو النتيجة المنشورة خطوة بخطوة.
هل يمكنني إعطاء الأحزاب أسماء؟
نعم. يمكنك إدخال اسم لكل حزب بترتيب الأصوات نفسه، فتظهر النتيجة كل حزب باسمه مع أصواته والمقاعد التي فاز بها.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/math/sainte-lague \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"votes":[5000,3000,2000],"seats":5}'const res = await fetch("https://api.kit.forhosting.com/math/sainte-lague", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"votes": [
5000,
3000,
2000
],
"seats": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/sainte-lague",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"votes": [
5000,
3000,
2000
],
"seats": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/sainte-lague", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"votes":[5000,3000,2000],"seats":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"votes":[5000,3000,2000],"seats":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/sainte-lague", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"votes": [
5000,
3000,
2000
],
"seats": 5
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.sainte_lague",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
كيف تعمل الأداة
يُمنح كل مقعد للحزب صاحب أعلى ناتج قسمة votes/(2s+1) (أو 1.4 للمقعد الأول في الصيغة المعدَّلة). التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ API. تُتحقَّق المدخلات قبل أي عملية حسابية، فتتحول الأنواع الخاطئة والقيم الخارجة عن النطاق إلى أخطاء invalid_input واضحة بدلًا من نتائج NaN صامتة. التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ API. تُتحقَّق المدخلات قبل أي عملية حسابية، فتتحول الأنواع الخاطئة والقيم الخارجة عن النطاق إلى أخطاء invalid_input واضحة بدلًا من نتائج NaN صامتة.
المدخلات والمخرجات
زوّد الحقول المذكورة في مخطط الإدخال. يجب أن تكون الحقول المطلوبة موجودة وبأنواعها الصحيحة، بينما تستعمل الحقول الاختيارية قيمًا افتراضية موثقة. وتستعمل رسائل الخطأ سلاسل مطابقة إنجليزية ثابتة من أجل الـ harness. توزّع المقاعد البرلمانية بطريقة أعلى المتوسطات Sainte-Laguë (Webster) مع مقسوم أول معدَّل اختياريًا. وتتضمن حمولة النجاح دائمًا حقول النتيجة الأساسية المسماة في مخطط الإخراج حتى يستطيع العملاء ربط مقاييس الواجهة دون تخمين. التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ API. تُتحقَّق المدخلات قبل أي عملية حسابية، فتتحول الأنواع الخاطئة والقيم الخارجة عن النطاق إلى أخطاء invalid_input واضحة بدلًا من نتائج NaN صامتة. التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ API. تُتحقَّق المدخلات قبل أي عملية حسابية، فتتحول الأنواع الخاطئة والقيم الخارجة عن النطاق إلى أخطاء invalid_input واضحة بدلًا من نتائج NaN صامتة.
الحالات الحدّية والقيود
يتطلب حزبين على الأقل وعدد مقاعد صحيحًا موجبًا. وتُرفض النطاقات الفارغة أو المتناقضة مبكرًا. راجِع أمثلة goldens للمسارات المرجعية للنجاح والخطأ قبل الدمج. أما القيم الوسيطة الضخمة جدًا التي تتجاوز سعة IEEE-754 فتصبح خطأ out-of-range بدلًا من حقول فارغة. التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ API. تُتحقَّق المدخلات قبل أي عملية حسابية، فتتحول الأنواع الخاطئة والقيم الخارجة عن النطاق إلى أخطاء invalid_input واضحة بدلًا من نتائج NaN صامتة. التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ API. تُتحقَّق المدخلات قبل أي عملية حسابية، فتتحول الأنواع الخاطئة والقيم الخارجة عن النطاق إلى أخطاء invalid_input واضحة بدلًا من نتائج NaN صامتة.
حالات التكامل
العروض التعليمية
اعرض أمثلة محلولة مع تجهيزات goldens تطابق الـ widget المجاني والـ API.
أسئلة تقنية
ماذا لو كان إدخالي غير صالح؟
ستتلقى invalid_input مع رسالة إنجليزية واضحة.
هل النتائج مستقرة؟
نعم. تُثبّت الرياضيات الحتمية وأمثلة goldens العقدَ.
من ألّف هذه القدرة؟
samurai في ورشة ForHosting KIT.