GolfScript(23文字)
{:^((1${\.**2^?%}+*}:f;
存在しないインバースのセンチネル結果は0
です。
これはオイラーの定理の簡単な応用です。ので、 X - 1 ≡ X 2 N - 1 - 1バツφ (2n)≡ 1(mod2n)バツ− 1≡ のx2n − 1− 1(mod2n)
残念ながら、直接計算するには指数が大きすぎるため、ループを使用し、ループ内でモジュラーリダクションを行う必要があります。反復工程である、我々は、基本ケースの選択肢がありますのいずれかを有しますバツ2k− 1= (x2k − 1− 1)2× xk=1
{1\:^(@{\.**2^?%}+*}:f;
またはk=2
で
{:^((1${\.**2^?%}+*}:f;
私は別のアプローチに取り組んでいますが、センチネルはもっと難しいです。
キーの観測は、私たちが少しずつアップ逆を構築することができるということです。場合はx y≡ 1(mod2k − 1)x y∈ { 1 、1 + 2k − 1}(mod2k)バツx (y+ x y- 1 )≡ 1(mod2k)y′=(x+1)y−1
0x≡1(mod20)
x(1−(x+1)nx)≡1(mod2n)
x+1
それは19文字の機能を提供します
{1$)1$?@/~)2@?%}:f;
xx&1
1
{1$.1&+1$?@/~)2@?%}:f;
02n−1
01−(x+1)n1−1n
{1$.1&*)1$?@/~)2@?%}:f;
nn x f
{..1&*)2$?\/~)2@?%}:f;