توزيع المقاعد بطريقة أكبر الباقي مجانًا
حوّل الأصوات إلى مقاعد كاملة بطريقة أكبر الباقي: 416000 و338000 و246000 صوت على 10 مقاعد بحصة هير تعطي 4 و3 و3 مقاعد. اختر حصة هير أو درووب واطّلع على باقي كل حزب. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الأصوات لكل حزب
- 416,000, 338,000, 246,000
- المقاعد المراد توزيعها
- 10
- أسماء الأحزاب (اختياري)
- A, B, C
- طريقة الحاصل
- هير (إجمالي الأصوات ÷ المقاعد)
- طريقة الحاصل
- هير
- الحاصل الانتخابي
- 100,000
توزّع المقاعد بطريقة أكبر الباقي (Hamilton) بحصة Hare أو Droop. مجاني وحتمي وخاص داخل متصفحك. لا حاجة إلى حساب. لا حاجة إلى حساب.
كيف تُوزَّع المقاعد بطريقة أكبر الباقي
تحتاج الأنظمة النسبية إلى مقاعد كاملة، لكن الأصوات نادرًا ما تنقسم قسمة تامة. تحل طريقة أكبر الباقي، المعروفة أيضًا بطريقة هاملتون، هذه المشكلة على مرحلتين. تحدد أولًا حصة، أي عدد الأصوات الذي يساوي مقعدًا واحدًا، وتمنح كل حزب عدد مقاعد يساوي عدد الحصص الكاملة التي جمعها، مع التقريب إلى الأدنى دائمًا. ثم تذهب المقاعد الشاغرة واحدًا تلو الآخر إلى الأحزاب صاحبة أكبر البواقي. في المثال تُوزَّع 10 مقاعد على 416000 و338000 و246000 صوت. ومع حصة هير البالغة 100000 تعطي المرحلة الأولى 4 و3 و2 مقاعد ويبقى مقعد واحد. والبواقي هي 0.16 و0.38 و0.46، فيذهب المقعد الأخير إلى الحزب الثالث ويصبح التوزيع النهائي 4 و3 و3.
أخطاء ينبغي تجنبها عند مراجعة التوزيع
تقع معظم الأخطاء في المرحلة الأولى. التقريب إلى أقرب عدد صحيح بدل التقريب إلى الأدنى يُفسد الطريقة، لأن هذه المرحلة لا تمنح إلا حصصًا كاملة. ومنح المقاعد المتبقية للأحزاب الأكثر أصواتًا بدل أصحاب أكبر البواقي يغيّر النتيجة، كما يبيّن الحزب الثالث في المثال. والحصة مهمة أيضًا، فتحقق مما إذا كانت قواعدك تطلب حصة هير أو حصة درووب قبل مقارنة النتائج. وتفيد الحاسبة في واجبات وامتحانات النظم الانتخابية حين تريد إجابة ثابتة تقارن بها إجابتك.
حالات الاستخدام
الواجبات والاختبارات
تحقق من المسائل الكمّية الكلاسيكية بسرعة بإجابات ثابتة قابلة لإعادة الإنتاج.
الأتمتة
استدعِ الدالة النقية نفسها من السكربتات دون تثبيت جدول بيانات أو نظام جبر رمزي (CAS).
الأسئلة الشائعة
هل هذه الأداة مجانية؟
نعم. تعمل فئة tier A بالكامل داخل متصفحك دون حساب.
هل تتصل بالشبكة؟
لا. يُبقي محرك parse كل شيء على جهازك.
كيف توزّع طريقة أكبر الباقي المقاعد؟
أولًا يحصل كل حزب على مقعد عن كل حصة كاملة من الأصوات، مع التقريب إلى الأدنى دائمًا. ثم تُمنح المقاعد المتبقية واحدًا تلو الآخر للأحزاب صاحبة أكبر البواقي حتى تكتمل جميع المقاعد.
لماذا يفوز حزب لديه حصص كاملة أقل بالمقعد الأخير؟
لأن المقاعد المتبقية تتبع البواقي لا مجموع الأصوات. في المثال لا يملك الحزب الثالث إلا حصتين كاملتين، لكن باقيه البالغ 0.46 هو الأكبر، فيحصل على آخر المقاعد العشرة وينتهي بثلاثة مقاعد.
ما الحصص التي يمكنني استخدامها؟
يمكنك اختيار حصة هير أو حصة درووب. مع حصة هير، يعطي مليون صوت في المثال موزعة على 10 مقاعد حصةً قدرها 100000 صوت للمقعد، ومنها ينطلق التوزيع كله.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/math/largest-remainder \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"votes":[416000,338000,246000],"seats":10}'const res = await fetch("https://api.kit.forhosting.com/math/largest-remainder", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"votes": [
416000,
338000,
246000
],
"seats": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/largest-remainder",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"votes": [
416000,
338000,
246000
],
"seats": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/largest-remainder", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"votes":[416000,338000,246000],"seats":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"votes":[416000,338000,246000],"seats":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/largest-remainder", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"votes": [
416000,
338000,
246000
],
"seats": 10
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.largest_remainder",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
كيف تعمل الأداة
يحصل كل حزب على floor(votes/quota) مقعدًا، ثم تذهب المقاعد المتبقية إلى أكبر البواقي الكسرية بالترتيب. التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ API. تُتحقَّق المدخلات قبل أي عملية حسابية، فتتحول الأنواع الخاطئة والقيم الخارجة عن النطاق إلى أخطاء invalid_input واضحة بدلًا من نتائج NaN صامتة. التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ API. تُتحقَّق المدخلات قبل أي عملية حسابية، فتتحول الأنواع الخاطئة والقيم الخارجة عن النطاق إلى أخطاء invalid_input واضحة بدلًا من نتائج NaN صامتة. التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ API. تُتحقَّق المدخلات قبل أي عملية حسابية، فتتحول الأنواع الخاطئة والقيم الخارجة عن النطاق إلى أخطاء invalid_input واضحة بدلًا من نتائج NaN صامتة.
المدخلات والمخرجات
زوّد الحقول المذكورة في مخطط الإدخال. يجب أن تكون الحقول المطلوبة موجودة وبأنواعها الصحيحة، بينما تستعمل الحقول الاختيارية قيمًا افتراضية موثقة. وتستعمل رسائل الخطأ سلاسل مطابقة إنجليزية ثابتة من أجل الـ harness. توزّع المقاعد بطريقة أكبر الباقي (Hamilton) بحصة Hare أو Droop. وتتضمن حمولة النجاح دائمًا حقول النتيجة الأساسية المسماة في مخطط الإخراج حتى يستطيع العملاء ربط مقاييس الواجهة دون تخمين. التنفيذ حتمي تمامًا ويعمل مجانًا في المتصفح بالدالة النقية نفسها التي يسلكها مسار الـ 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.