マクスタームから標準積和形を作る計算機
標準積和形は、真理値表の出力が0になる行をそのまま表すブール式です。入力変数の個数と該当する行番号を指定すると、各番号を2進数の割り当てへ変換し、対応するマクスタームを作り、すべての和項を一つの標準POS式へまとめます。結果には、積マクスタームの短縮表記、昇順の番号、変数名、確認やコピーに使える項ごとの詳しい内訳も含まれます。
無料で実行
出力0の行を標準マクスタームへ変換します
標準POS形では、ブール関数が0になる真理値表の行から式を作ります。通常の2進順で各行に番号を付け、先頭の変数を最上位ビットとして、該当番号をマクスターム一覧へ入力してください。計算機は選択された各行について、2進表記を指定された変数数まで0で埋め、すべての変数をちょうど1回ずつ含む和項を作ります。ビットが0なら変数をそのまま使い、1ならアポストロフィで補数を示します。この極性により、作成された和項は対象の割り当てでのみ0になります。たとえば、変数A、B、Cに対する101は(A' + B + C')です。入力番号は式を作る前に並べ替えるため、順不同で入力しても標準的な昇順になります。マクスターム一覧は真理値表の行の集合を表し、同じ因子を繰り返しても論理情報が増えないため、重複番号はエラーになります。項の内訳には、番号、桁をそろえた2進行、リテラル、完成した括弧付き和項がまとめて表示され、容易に照合できます。
積和形の結果を読み取り検証します
主式では、すべてのマクスタームが続けて配置されます。これはブール乗算を意味し、括弧内の各OR項をANDで結合します。併記されるΠMと昇順の0行番号は、論理回路の学習、仕様書、カルノー図、デジタル設計資料でよく使われる短縮表記です。検証は規則的に行えます。一覧から番号を一つ選び、その2進ビットを各変数へ割り当てて、対応する和項を確認してください。その項に含まれるすべてのリテラルが0になるため、項全体が0となり、積全体も0になります。一覧にない行では、その完全な割り当てで0になるよう設計されたマクスタームはありません。含まれるすべての和が1のままなので、積も1になります。これにより、式が入力された0集合だけを正確に表すことを確認できます。変数順を変えると各行番号の数値的な意味が変化するため、出力では順序を保持します。独自名を指定する場合は、変数数と同じ個数の有効かつ一意な識別子が必要です。省略すると、一定の既定名を自動生成します。
論理設計の工程で標準POS形を活用します
標準積和形は関数を厳密に表しますが、必ずしも最小の回路になるとは限りません。真理値表から後の最適化へ進む際の、信頼できる基準として特に役立ちます。まず出力0の行を確認し、POS式を生成してから、項の詳細を使って番号、ビット順、補数の誤りがないかを簡単化前に点検してください。その後、カルノー図で0をまとめる、ブール代数を適用する、別の最小化処理へ式を渡すといった作業へ進めます。標準形を簡単化後の式と一緒に保存すれば、最適化によって関数が変わっていないことを示す追跡可能な根拠になります。また、各マクスタームが特定の無効な入力割り当てを直接示すため、負論理の動作、デコーダーを使う設計、テストベクトルの資料作成にも便利です。入力は16変数までに制限され、各番号は対応する真理値表の範囲内でなければなりません。計算は決定的であり、ネットワーク、保存状態、乱数、時刻を使いません。ブラウザーでの利用は無料で、自動API実行は1回$0.002です。
活用例
真理値表をPOS形へ変換
リテラルの極性を手作業で反転せず、出力0の行から完全な積和形を作成します。
カルノー図の準備
0をまとめて論理関数を簡単化する前に、マクスタームと2進割り当てを確認します。
組み合わせ回路を文書化
設計資料、演習、検証記録へΠM表記と追跡可能な展開式を掲載します。
よくある質問
マクスタームとは何ですか?
すべての入力変数を1回ずつ含み、真理値表の一つの割り当てだけで0になるOR項です。
0ビットで変数を補数にしないのはなぜですか?
対象行で各リテラルを0にするためです。変数そのものはビット0で、補数はビット1で0になります。
最上位ビットに対応する変数はどれですか?
出力順の最初の変数です。独自の変数名を指定した場合も同じ順序です。
この計算機はPOS式を最小化しますか?
いいえ。指定された各0行に一つのマクスタームを持つ正確な標準POS形を作ります。最小化は別の工程です。
マクスタームは順不同で入力できますか?
はい。有効な番号は昇順に並べ替えます。重複する番号は受け付けません。
料金はいくらですか?
ブラウザーでは無料で実行できます。APIリクエスト1回の料金は$0.002です。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/elec/pos-maxterms \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"variables":3,"maxterms":[0,2,5,7]}'const res = await fetch("https://api.kit.forhosting.com/elec/pos-maxterms", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"variables": 3,
"maxterms": [
0,
2,
5,
7
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/pos-maxterms",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"variables": 3,
"maxterms": [
0,
2,
5,
7
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/pos-maxterms", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"variables":3,"maxterms":[0,2,5,7]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"variables":3,"maxterms":[0,2,5,7]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/pos-maxterms", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"variables": 3,
"maxterms": [
0,
2,
5,
7
]
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.pos_maxterms",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_items | 65536 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |