SlideShare ist ein Scribd-Unternehmen logo
1 von 15
逆元の計算
xryuseix
@ryusei_ishika
xryuseix
RiPPro (leader), RiST (sub-Leader)
HELLO!
2
Twitter :
Username :
G r o u p :
Self-introduction
お先に
3
𝐴 + 𝐵 = 𝐴%𝑃 + 𝐵%𝑃 %𝑃
𝐴 − 𝐵 = 𝐴%𝑃 + 𝑃 − 𝐵%𝑃 %𝑃
𝐴 × 𝐵 = 𝐴%𝑃 × 𝐵%𝑃 %𝑃
やりたいこと
4
A / B (mod P) を計算したい
A * X (mod P) なら計算できるので,
1/B=X (mod P)となるXが知りたい.
逆元とは
5
𝑋−1 ≡
1
𝑋
(𝑚𝑜𝑑 𝑃)
逆元 分数
フェルマーの小定理とは
6
𝑎 𝑃−1 ≡ 1 (𝑚𝑜𝑑 𝑃)
https://qiita.com/drken/items/6b4031ccbb2cab7436f3
逆元の計算
7
𝑎 𝑃−2
≡
1
𝑎
(𝑚𝑜𝑑 𝑃)
𝑎 𝑃−1 ≡ 1 (𝑚𝑜𝑑 𝑃)
両辺をaで割る
逆元の計算
8
𝑎 𝑃−2
≡
1
𝑎
(𝑚𝑜𝑑 𝑃) 𝑋−1 ≡
1
𝑋
(𝑚𝑜𝑑 𝑃)
𝑎 𝑃−2 ≡ 𝑎−1 (𝑚𝑜𝑑 𝑃)
逆元の計算
9
𝑎 𝑃−2 ≡ 𝑎−1 (𝑚𝑜𝑑 𝑃)
aの逆元aのP-2乗
mod Pの世界で,aをP-2乗するとaの逆元となる
つまり,aで割るという操作はaのP-2乗をかけることと等しい
Point !!
逆元の計算 ~実装~
10
このままだと計算量は
O(𝑃) (P=10^9+7)
繰り返し二乗法とは
11
X22
= 𝑋2+4+16
= 𝑋2
∗ 𝑋4
∗ 𝑋16
= 𝑋21
× 𝑋22
× 𝑋24
また,
22 = 10110(2) = 21 + 22 + 24
逆元の計算 ~繰り返し二乗法~
12
これで計算量は
O(log2 𝑃) (P=10^9+7)
逆元の計算 ~結論~
13
A
𝐵
≡ 𝐴 × 𝐵−1
≡ 𝐴 × 𝐵 𝑃−2
(mod P)
逆元
A
𝐵
%𝑃 ⇒ (𝐴%𝑃 × (𝐵 𝑃−2
%𝑃))%𝑃
実際に計算する時
逆元の計算 ~拡張ユークリッドの拡張~
14
𝑎𝑥 ≡ 1(𝑚𝑜𝑑 𝑃)
𝑎𝑥 = 1 + 𝑃𝑦
𝑎𝑥 + −𝑃𝑦 = 1
→ 一次不定方程式の解
演習課題
15
A.
整数が9個あり,それぞれの値は
[ 1, 1, 1, 2, 2, 2, 2, 3, 3 ]
です.並べ方は幾つでしょう?
B.
アルファベットが26*(26+1)/2
個あります.
Aが1個,Bが2個,…Zが26個で
す.並べ方は幾つでしょう?

Weitere ähnliche Inhalte

Mehr von xryuseix

競技プログラミングで便利な外部ツールを大量紹介
競技プログラミングで便利な外部ツールを大量紹介競技プログラミングで便利な外部ツールを大量紹介
競技プログラミングで便利な外部ツールを大量紹介xryuseix
 
正規表現の脆弱性 ReDoS 攻撃 を簡単に説明する回
正規表現の脆弱性 ReDoS 攻撃 を簡単に説明する回正規表現の脆弱性 ReDoS 攻撃 を簡単に説明する回
正規表現の脆弱性 ReDoS 攻撃 を簡単に説明する回xryuseix
 
Python2.x の input 関数に RCE 脆弱性がある話
Python2.x の input 関数にRCE 脆弱性がある話Python2.x の input 関数にRCE 脆弱性がある話
Python2.x の input 関数に RCE 脆弱性がある話xryuseix
 
GRAPHICAL STRUCTURES in our lives
GRAPHICAL STRUCTURES in our livesGRAPHICAL STRUCTURES in our lives
GRAPHICAL STRUCTURES in our livesxryuseix
 
Linuxコマンド入門
Linuxコマンド入門Linuxコマンド入門
Linuxコマンド入門xryuseix
 
Linux(Ubuntu20.04)インストール
Linux(Ubuntu20.04)インストールLinux(Ubuntu20.04)インストール
Linux(Ubuntu20.04)インストールxryuseix
 
RiST団体紹介スライド
RiST団体紹介スライドRiST団体紹介スライド
RiST団体紹介スライドxryuseix
 
RiPPro団体紹介スライド
RiPPro団体紹介スライドRiPPro団体紹介スライド
RiPPro団体紹介スライドxryuseix
 

Mehr von xryuseix (8)

競技プログラミングで便利な外部ツールを大量紹介
競技プログラミングで便利な外部ツールを大量紹介競技プログラミングで便利な外部ツールを大量紹介
競技プログラミングで便利な外部ツールを大量紹介
 
正規表現の脆弱性 ReDoS 攻撃 を簡単に説明する回
正規表現の脆弱性 ReDoS 攻撃 を簡単に説明する回正規表現の脆弱性 ReDoS 攻撃 を簡単に説明する回
正規表現の脆弱性 ReDoS 攻撃 を簡単に説明する回
 
Python2.x の input 関数に RCE 脆弱性がある話
Python2.x の input 関数にRCE 脆弱性がある話Python2.x の input 関数にRCE 脆弱性がある話
Python2.x の input 関数に RCE 脆弱性がある話
 
GRAPHICAL STRUCTURES in our lives
GRAPHICAL STRUCTURES in our livesGRAPHICAL STRUCTURES in our lives
GRAPHICAL STRUCTURES in our lives
 
Linuxコマンド入門
Linuxコマンド入門Linuxコマンド入門
Linuxコマンド入門
 
Linux(Ubuntu20.04)インストール
Linux(Ubuntu20.04)インストールLinux(Ubuntu20.04)インストール
Linux(Ubuntu20.04)インストール
 
RiST団体紹介スライド
RiST団体紹介スライドRiST団体紹介スライド
RiST団体紹介スライド
 
RiPPro団体紹介スライド
RiPPro団体紹介スライドRiPPro団体紹介スライド
RiPPro団体紹介スライド
 

Kürzlich hochgeladen

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Kürzlich hochgeladen (8)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

Modinv - 逆元の計算 -