2024年7月12日金曜日

関数電卓アプリでf(x) = a^x mod Nを計算

 前回のShor's Algorithmの記事で、f(x) = ax mod Nが出てきた。その際、整数xの値を0, 1, 2, ...と増やした場合のf(x)をグラフにして、周期rを手軽に知りたいことがあった。もちろん、Pythonなどでそのようなアプリを作るのは難しくないが、電卓でパッとできたらいいなあ!

 そんな高機能な関数電卓アプリがありました!アプリ名は991EXという地味な名称(ではなく、カシオの関数電卓fx-991exを意識したもの)になっていて、プロ版でも約300円という安価なものでした。こんな素晴らしいアプリもあったのかと驚きました。もちろんノーコードで、例えば、下図の通り、f(x) = 7x mod 15 のグラフがサッと描けました。f({0,1,2,3,4,5,6,7, ...}) = {1,7,4,13,1,7,4,13, ... }です。周期 r=4 がすぐに掴めます。素晴らしい!

 また、(実際には特に必要ありませんが)例えば下図のように、710003 mod 15という巨大な冪乗でもオーバフローせずに答えが出ます。Modular Exponentiation Methodですね。さらに、数々の驚きのジュアルと、使いきれないほどの高機能が潜んでいるようです。Pythonのようなプログラミング言語も内蔵しているので、必要であればコーディングによってもっと高度な計算も行えます。(関数電卓だからこそ、という手軽さを保ちつつ...)



0 件のコメント:

コメントを投稿