成績カーブ計算
素点4つの平均が65点で目標平均が80点なら、全員の点に80÷65を掛けるので順位は変わりません。平方根方式を選ぶと、低い点ほど大きく引き上げられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 点数
- 50, 60, 70, 80
- 目標平均
- 80
- 数量
- 4
- 素点の平均
- 65
- スケール因子
- 1.2307692308
- 調整後の平均
- 80
成績カーブは、ある組の試験素点をすべて取り上げ、教員が決めた目標平均にクラス平均が合うよう名簿を上げ下げする公表済みの調整です。想定より難しい試験、二つの組で近い平均をそろえたいとき、課題を書き直さずに平均を示してほしい学科からの要請などで使います。本計算機は非負の素点リスト、目標平均、線形または平方根の二方法を受け付けます。線形は各素点に目標平均/現在平均を掛け、順位は保ったまま新しい平均を目標に乗せます。平方根はまず各素点の平方根を取り(低い点が相対的に大きく上がります)、変換後の平均が目標になるよう再スケールします。
目標平均へ向かう線形スケーリングと平方根スケーリング
教室の成績カーブはベル上のレターでも、一点を別の満点へ換算することでもありません。シラバスや学科メモで公表する一つの数に平均が一致するよう、素点名簿全体を新しい名簿へ写す写像です。線形は透明な倍率です。 いまの素点平均を求め、目標平均をその平均で割り、その一つの係数を全員の得点に掛けます。
順位も学生間の比も変わらず、新しいクラス平均は(通常の浮動小数点丸めを除き)目標と一致します。例:五十・六十・七十・八十の四点は平均六十五、目標八十なら係数は八十/六十五となり、各点が同じ割合で上がりカーブ後平均は八十です。平方根は試験が下位を強く罰したときの凹型の代替です。
まず各素点 x を √x に置き換え、四十は九十より相対的に大きく上がります。続けて変換値の平均を目標平均まで伸ばす倍率を掛けます。例:三十六・六十四・百の三点は平方根が六・八・十で平均八、目標八十なら係数十で六十・八十・百が返ります。
素点が負なら両方法とも閉じた失敗です。符号付き減点は、この二つの公表写像が定義される成績ではありません。全員ゼロで目標が正のときも失敗します。
ゼロ名簿を正の平均へ写す有限係数はありません。名簿も目標もゼロなら、係数一でゼロを返します。学生が電卓で隣の点を検算できる公平な比例上げなら線形を、下位に余裕を残しつつ宣言したクラス平均を守るなら平方根を選んでください。
成績カーブ計算機が役立つ場面
教員と学科長は、掲示した名簿と公表した目標平均から調整点の列への一つの文書化された写像を必要とし、成績簿・保護者ポータル・オフィスアワーの説明が食い違わないようにします。線形カーブは黒板で示せる会話です。全員に同じ係数を掛け、電卓があれば隣の新しい点を確認できます。
平方根カーブは厳しい中間試験のあとの会話です。低い点ほど動き、よく選んだ目標を上位が飛び越えず、クラス平均は場当たりボーナスの驚きではなくあらかじめ述べた数です。LMS プラグインと教務スクリプトは、教員ごとに別公式の私有表を持つ代わりに同じ契約を呼べます。
正規の z からレターを付ける代用ではなく(それは別検索・別計算機です)、旧満点から新満点へ一点を換算する変換器でもありません。検証失敗は残高を使いません。
活用例
難しい試験を公表したクラス平均まで引き上げる
組の素点を貼り付け、シラバスの目標平均を設定し、線形スケーリングで全員に同じ文書化された係数を掛けます。
厳しい中間試験のあとの平方根による緩和
低い点がさらに上がる必要があるときは平方根スケーリングを使い、それでも学科が求めた目標平均にクラス平均を載せます。
二つの組を同じ平均にそろえる
試験を書き直さず、各名簿を同じ目標平均へ独立にカーブし、並行する組が近いクラス平均を報告できるようにします。
よくある質問
素点が負のときはどうなりますか?
負の素点は、この二つの写像が定義される成績ではなく、失敗は課金されません。
正規分布のレター付けと同じですか?
違います。 正規分布のレターは一点・クラス平均・標準偏差から A–F を付けます。本計算機は名簿の学生ごとに調整した数値点を返します。
線形ではなく平方根方式を使うのはどんなときですか?
試験が難しく、特に低い点の学生に厳しかったときです。先に平方根を取ると低い点ほど大きく上がり、その後で全体を調整するため、クラス平均は目標のままです。
全員が0点だと調整できないのはなぜですか?
平均が0のままでは、どんな倍率を掛けても正の目標平均にならないためです。この場合は有限の倍率が存在しないので、計算は結果を作らずに止まります。
線形の調整で順位は変わりますか?
変わりません。全員の点に同じ倍率を掛けるので、順位も学生どうしの点の比率もそのままで、クラス平均だけが目標の値になります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/edu/grade-curve \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"scores":[50,60,70,80],"target_mean":80}'const res = await fetch("https://api.kit.forhosting.com/edu/grade-curve", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"scores": [
50,
60,
70,
80
],
"target_mean": 80
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/grade-curve",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"scores": [
50,
60,
70,
80
],
"target_mean": 80
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/grade-curve", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"scores":[50,60,70,80],"target_mean":80}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"scores":[50,60,70,80],"target_mean":80}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/grade-curve", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"scores": [
50,
60,
70,
80
],
"target_mean": 80
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.grade_curve",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 1000 |
max_abs | 1000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
負の素点は黙って切り詰めず invalid_input として拒みます。同じ純粋算術が無料ブラウザとAPI経路を支え、通信も乱数もモデルトークンもありません。
目標平均へ向かう線形スケーリングと平方根スケーリング
curved_i は √raw_i に目標平均/全平方根の平均を掛けたものです。
入力契約、応答欄、検証
scores は名簿で、非負の有限数の空でない配列、またはフォームが平文を送るときのカンマ/空白区切り文字列です。各点と目標は有限小数である必要があり、任意の符号と科学表記は許されます。任意欄は null ではなく省略します。カーブ後も A から F を付けるなら、ご自身のレター表と組み合わせてください。本端点はレター帯を作らず、最低点を捨てず、目標と名簿がその尺度に既にある場合を除き百で打ち切りません。必須二つと任意の method を含む JSON 本体を POST してください。別名は raw_scores、raw、marks、grades です。target_mean はカーブ後に望むクラス平均で、得点と同じ尺度の非負有限数です。別名は target、desired_mean、curve_mean、mean です。method は linear または square_root で、省略時は linear です。別名は curve、scaling、mode です。真偽値・オブジェクト・空トークン・Infinity・NaN は invalid_input となり、壊れたセルが静かなゼロになることはありません。scores の負の要素は素点が負ではいけない旨と添字付きで失敗し、負の target_mean はその欄で失敗します。エンジンは名簿千件と値の大きさ上限を強制し、無料ブラウザ経路と Worker のメモリと遅延を予測できる予算内に保ちます。scores 欠落、空リスト、公開長超過、target_mean 欠落は invalid_input で課金されません。成功時は method、名簿長の count、raw_mean、target_mean、平方根変換の後に掛けた scale_factor、変換平均がゼロでない有効な場合に目標と一致する curved_mean、エコーした raw_scores、同じ学生順の並行配列 curved_scores、短い formula 文字列、画面用の一行 message を返します。
成績カーブ計算機が役立つ場面
実装は parse のティア A のため、成功した各呼び出しは公開の基本料金 $0.002 で、モデルトークンも外向き通信もありません。ペイロードを小さく保ち、テストで curved_scores を raw_mean と scale_factor とピン留めすれば、成績簿プラグイン・組間の揃え・公表した追試方針向けに再現可能なクラスカーブが得られ、自前の統計スタックを立てずに済みます。
技術的な質問
線形の成績カーブはどのように働きますか。
計算機は各素点に target_mean を現在の素点平均で割った値を掛けます。順位と比は保たれ、新しいクラス平均は目標と一致します。
平方根スケーリングは線形と何が違いますか。
平方根はまず各素点 x を √x に置き換えて低い点を相対的に大きく上げ、続けて target_mean / mean(√raw) を掛け、カーブ後平均が目標のままになるようにします。
成績カーブ計算機の料金はいくらですか。
ブラウザ用具は無料です。API 要求は成功した呼び出しごとに前払い KIT 残高から $0.002 を使い、無効な入力は課金されません。