テスト得点のカーブ調整
このテスト得点カーブ計算機は、素点の一覧全体に同じ調整方式を適用します。固定点の加算、最高得点を満点に合わせる換算、低得点を相対的に大きく引き上げる平方根カーブから選択できます。出力順は入力と同じで、指定した満点を上限とし、小数第2位までに丸めます。計算方法を明確に再現できる一方、カーブを採用する教育上の判断は担当教員が行う必要があります。
無料で実行
評価方針に合う方式をお選びください
カーブは計算以前に評価方針の決定です。固定点加算は全員を同じ点数だけ上げ、上限に達するまでは点差を維持します。最高点への換算は共通の倍率を用い、最も高い素点を指定した満点にします。試験が想定以上に難しかった場合に利用できます。平方根カーブは低い得点ほど割合として大きく引き上げるため、得点差をより強く変化させます。シラバスや所属機関の規則で認められた方式を使用し、結果が有利に見えるという理由だけで選ばず、受験者へ根拠を明確にご説明ください。
得点を入力して計算結果をご確認ください
有限で0以上の数値を1件以上入力し、3方式のいずれかを選択してください。固定点加算では加算値も指定します。負の値も指定できますが、出力は0未満になりません。満点は初期値が100で、変更できます。換算方式は満点を最高素点で割り、その値を全得点に掛けます。全件が0の場合は0で割れないため換算できません。平方根方式は各得点を満点に対する割合として変換します。並び順は維持されるため、氏名などの個人情報を送信せず、管理権限のある成績表へ結果を対応付けられます。
公平性、精度、記録をご確認ください
公開前に得点分布全体をご確認ください。固定点は上限付近で差を縮め、換算は比率を保つものの突出した最高点があると効果が小さくなります。平方根は点差を大きく変えます。安定した出力のため計算値は小数第2位に丸めます。方式、引数、素点、調整理由を記録し、まず匿名化したデータでお試しください。本機能は決定論的な算術のみを実行します。教育的な妥当性の判断、段階評価の付与、担当教員による確認の代行は行いません。
活用例
難しすぎた試験を補正する
共通倍率で全得点を換算し、最高素点を指定した満点に合わせます。
一律の得点調整を適用する
各得点に同じ点数を加え、指定した満点を上限にします。
カーブ方針を比較する
匿名化した得点を3方式で試算し、影響を確認してから選択します。
よくある質問
APIでの計算料金はいくらですか?
APIリクエスト1回につき$0.002です。ブラウザーの計算機でも同じ決定論的な処理をローカルで実行できます。
満点を超えた得点はどうなりますか?
調整後の値はmaximum_scoreを上限とし、初期値は100です。固定点方式では0未満にもなりません。
最高点への換算はどのように行いますか?
maximum_scoreを最高素点で割り、その共通倍率をすべての素点に掛けます。
平方根カーブの式は何ですか?
得点をmaximum_scoreで割った値の平方根を求め、その結果にmaximum_scoreを掛けます。
調整後の得点は丸められますか?
はい。安定した出力にするため、計算得点と表示される換算倍率を小数第2位に丸めます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/edu/test-curve-adjust \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"scores":[64,81,90],"method":"square_root_curve"}'const res = await fetch("https://api.kit.forhosting.com/edu/test-curve-adjust", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"scores": [
64,
81,
90
],
"method": "square_root_curve"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/edu/test-curve-adjust",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"scores": [
64,
81,
90
],
"method": "square_root_curve"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/edu/test-curve-adjust", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"scores":[64,81,90],"method":"square_root_curve"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"scores":[64,81,90],"method":"square_root_curve"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/edu/test-curve-adjust", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"scores": [
64,
81,
90
],
"method": "square_root_curve"
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "edu.test_curve_adjust",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 1000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |