حساب المتوسط المرجح للقيم والأوزان
تجمع هذه الحاسبة قائمة من القيم مع قائمة الأوزان المقابلة لها، ثم تعرض المتوسط المرجح والمجموع المرجح ومجموع الأوزان وعدد العناصر.
شغّل الأداة مجانًا
تفيد عندما ينبغي أن يكون لبعض المشاهدات تأثير أكبر من غيرها، مثل الدرجات والتقييمات والأسعار والقياسات والمؤشرات المركبة. الحساب حتمي: تُضرب كل قيمة في الوزن الموجود في الموضع نفسه، ثم تُجمع النواتج ويُقسم المجموع على مجموع الأوزان. إذا كان مجموع الأوزان صفراً، يُرفض الإدخال لأن القسمة لا تكون معرّفة.
طابقوا كل قيمة مع وزنها المقصود
أدخلوا القيم والأوزان في قائمتين لهما العدد نفسه من العناصر. يحدد الموضع العلاقة بينهما: الوزن الأول للقيمة الأولى، والثاني للثانية، وهكذا. فمثلاً تمنح القيم 82 و91 و76 مع الأوزان 0.25 و0.5 و0.25 القيمة الوسطى ضعف تأثير كل قيمة جانبية. لا يلزم أن يبلغ مجموع الأوزان واحداً أو مئة، لأن الصيغة تقسم على مجموعها تلقائياً. استخدموا أرقام JSON منتهية فقط. تُرفض الحقول الفارغة والنصوص واللانهاية والقوائم المفقودة أو الخالية والقوائم المختلفة في الطول. يمنع هذا التحقق الوزن المفقود من إزاحة جميع المطابقات التالية وإنتاج نتيجة تبدو صحيحة. قبل الحساب، تحققوا من تطابق ترتيب القائمتين ومن أن كل وزن يعبر عن التأثير المطلوب فعلاً.
افهموا طريقة الحساب والمجاميع المعروضة
تضرب الحاسبة كل قيمة في وزنها وتجمع النواتج للحصول على المجموع المرجح. وتجمع الأوزان بصورة مستقلة ثم تقسم المجموع الأول على الثاني. يعرض الرد weighted_average بوصفه النتيجة، وweighted_sum بوصفه البسط، وweight_sum بوصفه المقام، وcount بوصفه عدد الأزواج. تتيح هذه البيانات مراجعة الحساب في جدول أو تقرير أو اختبار آلي. ضرب جميع الأوزان في معامل واحد غير صفري لا يغير المتوسط. الوزن الصفري يلغي تأثير القيمة المقابلة. وتُقبل الأوزان السالبة رياضياً، لكنها قد تجعل النتيجة خارج نطاق القيم، لذلك لا تستخدموها إلا إذا تطلبت المنهجية ذلك. تتم المعالجة في مرور حتمي واحد ولا تتصل بأي خدمة خارجية.
تجنبوا المجموع الصفري وفسروا النتيجة بعناية
يجب ألا يساوي مجموع الأوزان صفراً. إذا كانت جميعها صفراً، أو ألغت الأوزان الموجبة والسالبة بعضها تماماً، تصبح القسمة غير معرّفة ويُعاد خطأ في الإدخال. عندما تمثل الأوزان نسباً مئوية، تحققوا من شمول جميع المكونات المطلوبة. يمكن أن يكون مجموعها 100 أو 1 أو أي مقدار غير صفري، لكن غياب مكوّن قد يجعل الإجابة ناقصة من الناحية العملية. في الدرجات، يختلف استبعاد واجب لم يُقيّم بعد عن إدراجه بدرجة صفر، أما إعطاؤه وزناً صفرياً فيزيل أثره كلياً. تكون أوزان التكرار عادة غير سالبة. قارنوا weight_sum بالمجموع المتوقع وcount بعدد صفوف المصدر لاكتشاف الأخطاء قبل حفظ المتوسط أو نشره أو استخدامه في قرار لاحق.
حالات الاستخدام
دمج مكونات المقرر
احسبوا الدرجة النهائية عندما تسهم الاختبارات والمشروعات والواجبات والمشاركة بنسب مختلفة.
تجميع التقييمات حسب الحجم
ادمجوا تقييمات المجموعات مع منح المجموعات ذات المشاهدات الأكثر التأثير المناسب.
إنشاء مؤشر مركب
ادمجوا مؤشرات مطبّعة بأوزان أهمية صريحة واحتفظوا بالمجاميع لأغراض المراجعة.
الأسئلة الشائعة
ما تكلفة الحساب؟
تكلف كل مطالبة عبر API مقدار $0.002؛ وتنفذ حاسبة المتصفح الحساب الحتمي نفسه محلياً.
هل يجب أن يبلغ مجموع الأوزان 100 أو 1؟
لا. يصلح أي مجموع غير صفري لأن المجموع المرجح يُقسم على المجموع الفعلي للأوزان.
ماذا يحدث إذا كان مجموع الأوزان صفراً؟
تعيد المطالبة خطأ في الإدخال لأن القسمة على مجموع صفري غير معرّفة.
هل يمكن أن يختلف طول القائمتين؟
لا. يجب أن يكون لكل قيمة وزن مقابل واحد بالضبط في الموضع نفسه.
هل تُقبل الأوزان الفردية الصفرية أو السالبة؟
نعم، بشرط ألا يكون المجموع صفراً. يزيل الوزن الصفري التأثير، وتتطلب الأوزان السالبة تفسيراً دقيقاً.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/calc3/weighted-average-grade \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"values":[82,91,76],"weights":[0.25,0.5,0.25]}'const res = await fetch("https://api.kit.forhosting.com/calc3/weighted-average-grade", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"values": [
82,
91,
76
],
"weights": [
0.25,
0.5,
0.25
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/calc3/weighted-average-grade",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"values": [
82,
91,
76
],
"weights": [
0.25,
0.5,
0.25
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/calc3/weighted-average-grade", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"values":[82,91,76],"weights":[0.25,0.5,0.25]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"values":[82,91,76],"weights":[0.25,0.5,0.25]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/calc3/weighted-average-grade", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"values": [
82,
91,
76
],
"weights": [
0.25,
0.5,
0.25
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc3.weighted_average_grade",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |