メルテンス関数計算機
1からnまでのメビウス関数の和を一度で求めます。M(100)は1で、素因数の個数が偶数の平方因子なし数と奇数のものとの差を符号付きで正確に表します。nは5,000,000まで使えます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 100
- メルテンス関数
- 1
メルテンス関数計算機は、1から正の整数nまでのメビウス関数を累積したM(n)を返します。これにより、異なる素因数の個数が偶数である平方因子を持たない整数と、奇数である整数が、最初の区間でどのように釣り合うかを直接確認できます。nを入力すると、決定論的な線形篩による正確な整数結果が得られます。無作為抽出、外部サービス、保存済みの参照表は使用しないため、同じ有効な入力には常に同じ結果が返されます。
メルテンス関数が表すもの
メルテンス関数はM(n) = μ(1) + μ(2) + ... + μ(n)で定義され、μはメビウス関数を表します。正の整数kについて、ある素数の平方がkを割り切る場合、μ(k)は0です。それ以外では、kの異なる素因数の個数が偶数ならμ(k)は1、奇数なら-1です。
したがって累積和は、平方因子を持たない整数の間に生じる符号付きの均衡を記録し、同じ素因数を重複して含む整数は和に寄与しません。この計算機は両端を含みます。つまり、nを入力すると1からnまでのすべてのメビウス値を合計します。
特にμ(1) = 1なので、M(1) = 1です。結果は正、0、負のいずれにもなり得ますが、確率や近似値ではなく、厳密な算術値として解釈してください。この累積量は、乗法的構造と数列における相殺の問題を結び付けるため、解析的整数論で広く扱われています。
正確な結果を求める仕組み
実装では線形篩を使い、メビウス値を小さい整数から順に構築します。篩が素数を見つけると、その素数のメビウス値を-1に設定します。次に、すでに見つかった各素数と現在の整数との積を調べます。
その素数が現在の整数をすでに割り切る場合、積には素数の平方因子が含まれるため、メビウス値を0として、その整数に対する処理を終了します。割り切らない場合は、積に現在の整数のメビウス値と反対の符号を与えます。各合成数は最小の素因数を通じて処理されるため、計算量は指定した上限に比例します。
新しい値が確定するたびに累積合計へ加算します。浮動小数点の公式は使わず、値の推定も行いません。アルゴリズムは決定論的でローカルに動作し、符号付き整数を返します。
篩用の配列を確保する前に、分数、有限でない数、1未満の値、公開上限を超える値を検証で拒否します。
入力の選び方と応答の読み方
たとえば、上限を段階的に増やして呼び出せば、M(n)の変動を描画したり、教科書の表を独立した計算と照合したり、別の方法でメビウス値を生成するコードを検証したりできます。nが大きいほど、そこまでのすべての整数を分類する必要があるため、時間とメモリーの消費が増えます。1つの正または負の結果だけを、長期的な傾向の証拠とみなさないでください。
この関数は寄与の累積に伴って振動し、理論上の関心は区間全体の挙動や漸近的な境界にあります。複数の値が必要な場合は、返された各組を保存するか、上昇する検査点を計算してください。M(n)だけからμ(n)を判断するには、M(n - 1)との比較が必要です。
活用例
整数論の演習を確認する
個々の値を手計算した後で、メビウス関数の正確な累積和を照合できます。
篩の実装を検証する
既知の検査点を、別のメビウス篩または素因数篩が出した結果と比較できます。
算術的な相殺を調べる
選択した上限でM(n)を収集し、その変動や符号の変化を分析できます。
よくある質問
合計にはnも含まれますか?
はい。 1からnまでのすべての整数を、両端を含めて計算します。
結果は近似値ですか?
いいえ。 決定論的な整数篩ですべてのメビウス値を計算するため、返される結果は厳密です。
M(100)の値はいくつですか?
M(100)は1です。1から100までのすべての整数のメビウス値を足すと1が残り、素因数の個数が偶数の平方因子なし数が1つ多いことを示します。
メビウス関数は何を数えるのですか?
素数の2乗で割り切れる数には0を与えます。それ以外の数は、異なる素因数の個数が偶数なら1、奇数なら−1です。M(n)はこれらを足したもので、正にも0にも負にもなります。
nはどこまで大きくできますか?
1から5,000,000までの整数です。分数や1未満の値は受け付けません。nが大きいほど分類する数が増えるため、この上限があります。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/mertens-function \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":100}'const res = await fetch("https://api.kit.forhosting.com/numth/mertens-function", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/mertens-function",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/mertens-function", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/mertens-function", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 100
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.mertens_function",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 5000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
入力の選び方と応答の読み方
nには1以上5,000,000以下のJSON整数を指定してください。応答では、受理したnを再掲し、mertensフィールドに対応するメルテンス値を示すため、自動保存した記録でも内容を明確に把握できます。公開されている上限によって、ブラウザーとAPIの双方で処理量を制限しています。
技術的な質問
メルテンス関数とは何ですか?
メビウス関数をμとすると、M(n) = Σ(k=1..n) μ(k)で表される累積和です。
nが1未満の場合はどうなりますか?
この計算機では正の整数上限が必要なため、invalid_inputエラーで要求が失敗します。
APIでの計算料金はいくらですか?
APIリクエスト1回の料金は$0.002です。ブラウザーでは無料でも実行できます。