ハッピー数チェッカー
19はハッピー数です。1² + 9² で82、次に68、100と進み、4回で1に着きます。正の整数を入力すると、1に着くか、終わらないループに入るかを、途中の値をすべて示して判定します。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- N
- 19
- 反復回数
- 4
- 列
- 19, 82, 68, 100, 1
- 終端
- 1
ハッピー数(幸福数)とは、十進表記の各桁を平方して足し合わせる操作を繰り返し、最終的に1に到達する正の整数です。過程が1を含まない閉路に入れば、その数はアンハッピー(時にサッド)と呼ばれます。道のりは短く完全に決定的で、娯楽数論とコーディング面接で有名です。本チェッカーは単一の正の整数を受け取り、閉路検出付きで桁平方写像を走らせ、ハッピーかどうかと監査用の中間値の全列を返します。1未満の値は無効入力として拒否されます。
ハッピー数とは何か、桁の平方プロセスの仕組み
十進で書いた任意の正の整数から始めます。各桁を平方し、それらの平方を足し、合計を列の次の値とします。繰り返します。 いつか1に着地すれば元の数はハッピーです。
既に見た数に再訪すれば、1を含まない有限閉路に入ったので元の数はアンハッピーです。教科書的なハッピー例は19です。1の平方と9の平方は82、8の平方と2の平方は68、6の平方と8の平方は100、1の平方と0の平方と0の平方は1です。
2のようなアンハッピーな出発点はすぐ4に至り、16、37、58、89、145、42、20、そして再び4という、この写像下のすべてのアンハッピー正整数が共有する古典的閉路に入ります。定義は純粋に算術的で、確率も外部表も、通常の整数の範囲では浮動小数近似への依存もありません。教材はしばしばデジタルルートや加法的持続性といった関連する桁操作と対比します。
それらは桁を一度足して縮約するのに対し、ハッピネスは足す前に各桁を平方し、1到達かループかを問題にします。非負整数は桁が少しでも多いと厳密に小さい値へ写るか、少なくとも小さな閉アトラクタ集合へ入るため、アルゴリズムは常に控えめな反復回数で終了します。そのため自動判定、コンテスト問題、道筋を示さねばならない授業デモに適しています。
活用例
面接・コンテスト問題の確認
受験者と採点者は任意の正整数のハッピー数分類を検証し、ローカルループを書かずに桁平方の全列を検査できます。
授業での数論デモ
教員は、平方した桁の和が1へ向かうか古典的アンハッピー閉路へ入るかを、議論用に中間値をすべて見せながら示せます。
よくある質問
nが1未満の場合はどうなりますか?
本チェッカーは正の整数を要求し、0と負数は拒否され課金されません。
19はハッピー数ですか?
はい。各桁を2乗して足すと82、68、100と続き、最後に1になります。19は4回で1に着くのでハッピー数です。結果にはこの道のりがすべて表示されます。
ハッピー数でない数はどうなりますか?
1には着かず、同じ値を繰り返すループに入ります。例えば2から始めると、4、16、37、58、89、145、42、20と進んで4に戻ります。これがハッピー数でない数に共通のループです。
ハッピー数かどうかはどう調べますか?
各桁を2乗して足し、その合計で同じ操作を繰り返します。1になればハッピー数、前に出た値が再び現れればループに入ったのでハッピー数ではありません。
数字根とは何が違いますか?
数字根は各桁をそのまま足していきます。ハッピー数では各桁を2乗してから足し、1に着くかループするかを見ます。似ていますが、別の計算です。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/numth/happy-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":19}'const res = await fetch("https://api.kit.forhosting.com/numth/happy-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 19
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/happy-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 19
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/happy-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":19}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":19}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/happy-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"n": 19
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.happy_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_n | 1000000000000 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
本チェッカーがハッピネスを評価し列を報告する方法
実装はnが存在し、有限で、整数で、少なくとも1であることを検証します。その後、桁の平方和写像を順に歩き、各値を記録します。既出値の集合が繰り返しの瞬間に閉路を検出するため、ループが永遠に回り続けることはありません。決定性は完全です。 同じnは常に同じ真偽値、同じ順序付き列、同じ反復回数を返すので、ユニットテストや再現可能なノートで応答を固定できます。正の整数nを持つフィールドで能力を呼び出します。安全範囲内のJSON数、または整数に正規化される桁文字列のどちらでも構いません。歩行が止まると、終端値が1ならis_happy true、さもなくばfalse、適用した桁平方ステップ数をiterations、終端エントリを含む全sequence、機械可読な短い停止条件としてのterminalを報告します。n欠落、非整数、1未満、公開上限を超える整数はinvalid_inputで失敗し課金されません。
実務利用、制限、料金、提供チャネル
LeetCode風の問題を解くとき、数論の授業を準備するとき、計算機代数系を入れずにコンテスト答案を確認するときなど、即座のハッピー数判定が欲しい場合はブラウザツールをご利用ください。検証失敗は残高を消費しません。受理入力は公開上限までの正の整数で、授業例や面接デモを通常の数範囲内で厳密に保てます。結果は時計、乱数シード、遠隔算術サービスに依存しません。スクリプト、宿題チェッカー、教育プラットフォームが固定契約の安定したJSONを多数の値に対して必要とする場合はAPIをご利用ください。成功した各リクエストは$0.002の課金項目1件です。正確な桁演算を不透明なブラックボックス電卓より好むコーディング面接練習アプリ、娯楽数学ページ、整数分類パイプライン、教材ダッシュボードにエンドポイントを接続してください。Webフォーム、タスクAPI、SDKクライアント、その他のKITチャネルから、数学契約を変えずに利用できます。
連携の活用例
整数分類の自動パイプライン
整数をハッピーまたはアンハッピーとタグ付けするスクリプトは、場当たり的な閉路検出を埋め込む代わりに、項目課金の単一決定的エンドポイントを呼べます。
技術的な質問
このAPIでハッピー数をどう調べますか?
正の整数フィールドnを持つJSON本体をnumth.happy_number能力へ送ってください。応答はis_happy、iterations、順序付きsequence、terminal値を返します。
sequenceフィールドには何が含まれますか?
sequenceは元のnから各桁の平方和を経て、歩行が1に達するか既出の閉路メンバーに再入するまでのすべての値を列挙します。
ハッピー数チェッカーは無料ですか?
ブラウザツールは端末上で無料に動きます。API呼び出しは成功項目あたり$0.002で前払いKIT残高を使い、検証失敗は課金されません。
結果は決定的ですか?
はい。同じnは常に同じis_happyフラグ、同じsequence、同じ反復回数を生成します。経路にモデル、ネットワーク呼び出し、乱数はありません。