船と流れの速度計算機
静水で10の船が流れの速さ2の川を進むと、上りは8、下りは12になります。船と流れの速さから求める方向にも、上りと下りの速さから逆に求める方向にも、定番の流水算を解けます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 計算モード
- 船と流れの速度から
- 静水時の船の速度
- 10
- 流速
- 2
- 上りの速度
- 8
- 下りの速度
- 12
静水での船速、流れの速さ、上り・下りの有効速度を相互に変換します。無料で決定的、ブラウザ内で完結しアカウントは不要です。
船速と流速の関係
古典的な数量問題では、船は静水で速さ b、流れは速さ s で動きます。流れに逆らって上ると有効速度は b 引く s、流れに乗って下ると b 足す s になります。逆問題では上り u と下り d から、船速を平均、流速を差の半分として復元します。
入力は有限数でなければならず、船は正、流れは非負、順方向では船が流れを上回る必要があります。逆方向では上りと下りが正で、下りが上りを上回る必要があります。決定性は意図的で、授業・宿題・自動化が同じフィクスチャで契約を固定します。
境界・授業利用・限界
順方向では上りが正になるよう船が流れより速い必要があります。流れゼロは許され、上りと下りは船と等しくなります。負の速さは拒否されます。
教師は静水十と流れ二から上り八・下り十二を示し、逆変換で元を戻せます。自動化スクリプトは表計算なしで同じ純粋関数を呼びます。丸めが文書化され共有されるため、ブラウザとエッジで結果が安定します。
著者は KIT 工房の samurai です。
活用例
宿題と試験
古典的な船と流れの数量問題を安定した再現可能な答えで確認します。
自動化
表計算や CAS を入れずにスクリプトから同じ純粋関数を呼び出します。
よくある質問
無料ですか?
はい。 ティア A はアカウント無しでブラウザ内だけで動きます。
この能力の著者は誰ですか?
ForHosting の KIT 工房の samurai です。
上りと下りの速さから、静水での船の速さはどう求めますか?
2つの速さの平均をとります。上りが8、下りが12なら、静水での船の速さは10で、流れの速さは2つの差の半分の2です。
船が流れより速くなければならないのはなぜですか?
上りでは船の速さから流れの速さが引かれるためです。流れが同じか速いと、上りの速さが0以下になって船が進まず、定番の問題の前提に合いません。
流れの速さを0にできますか?
はい、できます。流れがなければ、上りの速さ、下りの速さ、静水での船の速さはすべて同じ値になり、計算機もそのとおりに表示します。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/math/boat-stream \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"mode":"from_boat_stream","boat":1}'const res = await fetch("https://api.kit.forhosting.com/math/boat-stream", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"mode": "from_boat_stream",
"boat": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/boat-stream",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"mode": "from_boat_stream",
"boat": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/boat-stream", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"mode":"from_boat_stream","boat":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"mode":"from_boat_stream","boat":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/boat-stream", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"mode": "from_boat_stream",
"boat": 1
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.boat_stream",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
船速と流速の関係
純粋関数 solve はどちらの mode も受け取り、boat・stream・upstream・downstream を一つのペイロードで返します。型違いや範囲外は silent な NaN ではなく明確な invalid_input になります。同じ算術がブラウザの parse エンジンと API 経路でネットワーク無しに動きます。
入力・出力と安定した契約
表示層はフォームの数値文字列をcoerce してよいですが、コアはゴミを黙って NaN にしません。空オブジェクトや矛盾する範囲は早期に拒否されます。船十・流れ二の順方向、同じ数の逆復元、流れが船を上回る拒否ケースです。必須フィールドは mode に依存します。from_boat_stream では boat と stream、from_up_down では upstream とdownstream を渡します。mode を省略すると from_boat_stream が既定です。成功ペイロードは常に mode と四つの速度欄をエコーします。
連携の活用例
授業デモ
無料ウィジェットと API に一致するゴールデン例で解法を示します。
技術的な質問
ネットワークを呼びますか?
いいえ。parse エンジンが端末内で計算します。
入力が無効なときは?
明確な英語メッセージ付きの invalid_input を受け取ります。
結果は安定しますか?
はい。決定的な数学とゴールデン例が契約を固定します。