計算模 m 的 k 次根

來源:互聯網
上載者:User

真心說聲,不明白古人為什麼那麼聰明,由一個最簡單的帶餘除法引申出如此之多的智慧...

題目:已知 x^k = b ( mod m )  , ( b, m ) = 1, ( E(m), k ) = 1;  告訴你 k, b, m 的值, 要你求:x 的值 

儲備知識:(1)
如果b^k = 1 ( mod m ),則 ( b^k )^t = 1 ( mod m ) , t = 1, 2, 3, ....

                    (2) 如果( a, b ) = 1 , 則由整數的整除性質知必定存在整數 s, t 使得 as + bt = 1 一定成立...

求:由( E(m), k ) = 1 知道存在整數 s,t 使得 k * t = E(m) * s + 1; 成立...
        令 x = b^t ; 則(b^t)^k = b^(E(m)*s+1) = b * b^(E(m)*s)  =  b * (b^E(m))^s

        由歐拉定理 b^E(m) = 1 ( mod m ) , ( b,m ) = 1;   則 (b^E(m))^s = 1 ( mod m ),

        則 b *(b^E(m))^s = b ( mod m ),所以最終需要求的 t 。

        根據 k * t = E(m) * s + 1 , 求 m 的歐拉函數E(m), 再解二元一次不定方程,解的最後的 t 值..

        再通過快速冪求得 b^t ,注意一點,一定要解的 t 為最小正數解..

 

 附證明儲備知識(1):

57(312868261)  20:56:51
一開始學,多寫開來

a=1 mod m,則a=km+1,那麼a^n=(km+1)^n
展開來,全是m的倍數項,就多出一個1

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.