
2026/01/01 23:26
**Show HN:** 48桁の素数を毎回 Git コミットで表示する --- (原文) > **Show HN:** 48‑digit prime numbers every git commit (日本語訳) > **Show HN:** 毎回 Git のコミット時に 48 桁の素数を表示する
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Summary
本記事では、コミットメッセージを繰り返しファズ(変更)して、その結果得られる SHA‑1 ハッシュ(160ビット整数として解釈)が素数になるまで試行する軽量 Git サブコマンド git‑prime を紹介します。ユーザーは次の一行でインストールできます:
(Linux/macOS)またはcurl -fsSL https://textonly.github.io/git-prime/install.sh | bash(Windows)。irm https://textonly.github.io/git-prime/install.ps1 | iex
インストール後、コマンドはのように使用します。内部では、git‑prime はメッセージに「Nonce」と呼ばれるカウンタを付与し($ git prime‑commit "Fix critical bug")、毎回 SHA‑1 ハッシュを再計算し、40ラウンドの Miller–Rabin 素数判定で検証します。素数が見つかると、ツールは最終的なコミットハッシュ、その10進表現、およびそれを生成した nonce(例:試行 168 →git‑prime Nonce: N)を表示します。cb80ebbd975f00288dca70d8fa735c688755f947
通常の実行時間は、1 コミットあたり約30〜120秒です。実装は外部依存関係なしに純粋な Python 3.6+ で書かれており、Linux、macOS、および Windows で動作します。このツールは日常の Git ワークフローでは実用的な必要性がないものの、開発者向けに「素数ハント」を楽しむ機会を提供し、SHA‑1 ハッシュ内に隠された 160ビット素数を探索する分散検索へ計算サイクルを貢献します。
本文
git‑prime
あなたの160ビットGitコミットハッシュが数論的に素数になるようにするツール
これは何ですか?
コミットメッセージをふず(乱数化)し、結果として得られるSHA‑1ハッシュが 160ビット整数として解釈したときに素数になるまで試行するユーティリティです。
あなたのコミットは数学的厳密性に値しますから。
インストール
curl -fsSL https://textonly.github.io/git-prime/install.sh | bash
Windows(PowerShell)
irm https://textonly.github.io/git-prime/install.ps1 | iex
使い方
$ git prime-commit "Fix critical bug" Searching for prime commit hash... Base message: Fix critical bug Attempt 10 : d051b974ece9d844... not prime Attempt 20 : 954de912a9e5bbce... not prime Attempt 30 : ace4df509c5a9677... not prime … Attempt 168: cb80ebbd975f0028... not prime [PRIME] Found after 168 attempts! Commit: cb80ebbd975f00288dca70d8fa735c688755f947 Hash as int: 1161800157764419353674868058637793188631547345223 → Verify on WolframAlpha Message: "Fix critical bug" + git-prime Nonce: 167
動作原理
- SHA‑1ハッシュは160ビット(40桁の16進数)です。
- 整数として解釈すると0〜約10⁴⁸までの範囲になります。
- Miller–Rabin 素性判定でハッシュが素数かどうかを確認します。
というノンス(乱数)をメッセージに付加し、素数になるまで試行します。git-prime Nonce: N- 平均実行時間:30〜120秒。
特徴
- 数学的根拠 – 40ラウンドの Miller–Rabin テスト。
- Git 統合 – Git サブコマンドとして動作。
- クロスプラットフォーム – Python 3.6+、任意OS。
- 依存なし – 標準ライブラリのみで実装。
なぜ?
素数コミットハッシュを探すのは、コミットメッセージ規約について議論するより楽しいからです。
それに、グローバル分散計算網を使って「素性判定のような数理的無意味タスク」を前進させるべきではないでしょうか?
git prime-commit を実行するすべての開発者が、SHA‑1 空間に潜む160ビット素数を見つけるという高尚な目的へ計算リソースを寄与します。それは「数学的には無駄だが美的に満足できる」ゴールへの分散コンピューティングです。