FOIL法計算機
FOIL法計算機は、(ax + b)(cx + d) の形をした2つの二項式を展開し、分配法則の各段階を明確に表示します。負の値を含めて4つの係数を入力すると、最初・外側・内側・最後の積を順番に確認できます。その後、2つの一次の項を加え、二次の項と定数項を保ったまま、整理済みの多項式を返します。宿題の確認、符号間違いの発見、授業や演習で使う再現可能な解答手順の作成に役立ちます。
無料で実行
各二項式を4つの係数に対応させます
まず、式を (ax + b)(cx + d) の形に対応させます。a は1つ目の二項式で x に掛かる係数、b はその定数です。c と d は2つ目の二項式で同じ役割を持ちます。たとえば、(2x + 3)(4x - 5) では a = 2、b = 3、c = 4、d = -5 です。マイナス記号は係数の一部なので、演算子を別に指定せず、負の5として入力します。x の前に数が書かれていない場合、係数は1です。(x + 7) なら a = 1、(-x + 2) なら a = -1 となります。定数項がなければ0を入力します。計算前に4つの値を書き出すと、入力の取り違えを防ぎやすくなります。整数と小数を利用できますが、各欄には公開された上限内の有限数を指定してください。結果には元の式も再構成されるため、展開を利用する前に値と符号を確認できます。
最初・外側・内側・最後の順に計算します
FOILは、2つの二項式に分配法則を適用する順序を覚えるための名称です。最初の項では ax と cx を掛けて acx² を得ます。外側では ax と d を掛けて adx、内側では b と cx を掛けて bcx、最後では定数 b と d を掛けて bd を得ます。この計算機は、それぞれの演算を数値と代数的な項とともに個別表示します。そのため、最終解が違うと分かるだけでなく、どこで符号を誤ったかを特定できます。(2x + 3)(4x - 5) の4つの積は、8x²、-10x、12x、-15 です。FOILは新しい乗法規則ではなく、分配法則で必要な4つの積に名前を付けたものです。同じ考え方は、FOILという略称が当てはまらない長い多項式にも拡張できます。順番に確認すれば、1つ目の因数の各項が2つ目の各項とちょうど1回ずつ掛けられたことも確かめられます。
同類項をまとめて結果を確認します
4つの積を求めた後、自動的に同類項となるのは外側と内側の積だけです。どちらも x の1次項なので、係数を ad + bc として加えます。最初の積には x² があり、最後の積には変数がないため、これらを中央の項とまとめることはできません。一般形は acx² + (ad + bc)x + bd です。例では -10x + 12x が 2x になり、8x² + 2x - 15 を得ます。出力には中央係数の計算、次数の高い順に並んだ3つの係数、整形済みの等式が含まれます。係数が0なら、表示される式が2項だけになることがありますが、自動処理用の係数配列には3つの位置が残ります。別の方法で検算するには、x = 1 のような簡単な値を元の因数と展開後の多項式の両方へ代入してください。APIの料金は1件あたり$0.002で、ページ上のブラウザー計算は無料です。
活用例
代数の宿題を確認する
FOILの各積を書いた解答と比較し、係数や符号が変わった箇所を正確に見つけられます。
解説付きの例題を作る
授業、個別指導、演習プリント向けに、一貫した手順付きの二項式の掛け算を作成できます。
記号処理を検証する
2つの一次式を明確に展開する処理で、係数配列と整形済みの等式を利用できます。
よくある質問
FOILとは何の略ですか?
最初、外側、内側、最後を表し、2つの二項式を分配するときに掛ける4組の項を示します。
負の係数を使えますか?
はい。2つ目の二項式がマイナス5で終わる場合の d = -5 のように、符号を係数の一部として入力します。
小数の係数にも対応していますか?
はい。公開された上限内の有限な整数と小数に対応し、浮動小数点のノイズを避けるため決定的に丸めます。
結果が2項しか表示されないのはなぜですか?
係数が0の場合があります。表示では0の項を省きますが、配列には二次・一次・定数の3つの位置が残ります。
3項の多項式にもFOILを使えますか?
分配法則は使えますが、この計算機は一次項と定数項を持つ2つの二項式専用です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/algebra/foil-method \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"a":2,"b":3,"c":4,"d":-5}'const res = await fetch("https://api.kit.forhosting.com/algebra/foil-method", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"a": 2,
"b": 3,
"c": 4,
"d": -5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/algebra/foil-method",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"a": 2,
"b": 3,
"c": 4,
"d": -5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/algebra/foil-method", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"a":2,"b":3,"c":4,"d":-5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"a":2,"b":3,"c":4,"d":-5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/algebra/foil-method", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"a": 2,
"b": 3,
"c": 4,
"d": -5
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "algebra.foil_method",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_abs_coefficient | 1000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |