Calculer la moyenne pondérée de valeurs et de poids
Ce calculateur associe une liste de valeurs à une liste de poids correspondants et renvoie la moyenne pondérée, la somme pondérée, le poids total et le nombre d’éléments.
Lancer gratuitement
Il convient lorsque certaines observations doivent compter davantage que d’autres, notamment pour des notes, évaluations, prix, mesures ou indices composites. Le calcul est déterministe : chaque valeur est multipliée par le poids placé au même rang, les produits sont additionnés, puis le résultat est divisé par la somme des poids. Un poids total nul est refusé, car cette division serait indéfinie.
Associez chaque valeur au poids prévu
Saisissez les valeurs et les poids dans deux listes comportant exactement le même nombre d’éléments. Leur position définit l’association : le premier poids s’applique à la première valeur, le deuxième à la deuxième, et ainsi de suite. Par exemple, les valeurs 82, 91 et 76 avec les poids 0.25, 0.5 et 0.25 donnent deux fois plus d’influence à la valeur centrale. Les poids ne doivent pas nécessairement totaliser un ou cent, puisque la formule divise automatiquement par leur somme. Utilisez uniquement des nombres JSON finis. Les champs vides, le texte, l’infini, les listes absentes ou vides et les longueurs différentes sont refusés. Avant le calcul, vérifiez donc l’ordre des deux listes et assurez-vous que chaque poids exprime bien l’influence recherchée.
Comprenez le calcul et les totaux fournis
Le calculateur multiplie chaque valeur par son poids, puis additionne ces produits pour obtenir la somme pondérée. Il additionne séparément les poids et divise le premier total par le second. La réponse présente weighted_average comme résultat, weighted_sum comme numérateur, weight_sum comme dénominateur et count comme nombre de paires. Ces données permettent de contrôler facilement le calcul dans un tableur, un rapport ou un test. Multiplier tous les poids par un même facteur non nul ne change pas la moyenne. Un poids nul supprime simplement l’influence de la valeur associée. Les poids négatifs sont admis mathématiquement, mais ils peuvent placer le résultat hors de l’intervalle des valeurs ; utilisez-les uniquement si votre méthode l’exige. Le traitement est déterministe et ne contacte aucun service externe.
Évitez un total nul et interprétez le résultat
La somme des poids doit être différente de zéro. Si tous les poids sont nuls, ou si les poids positifs et négatifs s’annulent exactement, la division est indéfinie et une erreur de saisie est renvoyée. Lorsque les poids représentent des pourcentages, vérifiez que tous les composants attendus sont présents. Ils peuvent totaliser 100, 1 ou toute autre quantité non nulle, mais un composant manquant peut rendre la réponse incomplète sur le fond. Pour une note, exclure un devoir non évalué diffère de lui attribuer zéro ; lui donner un poids nul retire entièrement son effet. Pour des fréquences, les poids sont généralement positifs. Comparez weight_sum au total attendu et count au nombre de lignes sources afin de repérer les erreurs avant d’enregistrer ou de publier la moyenne.
Cas d’usage
Combiner les composantes d’un cours
Calculez une note finale quand examens, projets, contrôles et participation ont des proportions différentes.
Regrouper des évaluations par volume
Fusionnez les évaluations de groupes en donnant davantage d’influence aux groupes comptant plus d’observations.
Construire un indice composite
Réunissez des indicateurs normalisés avec des poids explicites et conservez les totaux pour le contrôle.
Questions fréquentes
Combien coûte le calcul ?
Chaque requête API coûte $0.002 ; le calculateur du navigateur exécute localement le même calcul déterministe.
Les poids doivent-ils totaliser 100 ou 1 ?
Non. Tout total non nul convient, car la somme pondérée est divisée par la somme réelle des poids.
Que se passe-t-il si la somme des poids est nulle ?
La requête renvoie une erreur de saisie, car une division par un total nul est indéfinie.
Les deux listes peuvent-elles avoir des longueurs différentes ?
Non. Chaque valeur doit posséder exactement un poids correspondant au même rang.
Les poids individuels nuls ou négatifs sont-ils permis ?
Oui, si le total reste non nul. Un poids nul retire toute influence ; un poids négatif demande une interprétation prudente.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
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)Exemple de requête
{
"values": [
82,
91,
76
],
"weights": [
0.25,
0.5,
0.25
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "calc3.weighted_average_grade",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |