BSGS(进阶篇,解法+题目)
Posted H-w-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BSGS(进阶篇,解法+题目)相关的知识,希望对你有一定的参考价值。
进阶篇
问题:
x a ≡ b ( m o d p ) x^a\\equiv b(mod~p)\\\\ xa≡b(mod p)
解法一:
设
g
g
g是p的一个原根,根据原根的性质存在
c
c
c,满足
g
c
≡
x
g^c\\equiv x
gc≡x成立,同理存在
t
t
t,满足
g
t
≡
b
g^t\\equiv b
gt≡b成立。
∴
(
g
c
)
a
≡
b
(
m
o
d
p
)
(
g
a
)
c
≡
b
(
m
o
d
p
)
g
a
已
知
,
所
以
我
们
就
能
用
基
础
篇
直
接
求
解
c
,
也
就
是
一
个
特
解
。
\\therefore (g^c)^a\\equiv b(mod~p)\\\\ (g^a)^c\\equiv b(mod~p)\\\\ g^a已知,所以我们就能用基础篇直接求解c,也就是一个特解。
∴(gc)a≡b(mod p)(ga)c≡b(mod p)ga已知,所以我们就能用基础篇直接求解c,也就是一个特解。
解法二:
设
g
g
g是p的一个原根,根据原根的性质存在
c
c
c,满足
g
c
≡
x
g^c\\equiv x
gc≡x成立,同理存在
t
t
t,满足
g
t
≡
b
g^t\\equiv b
gt≡b成立。
∴
g
a
c
≡
g
t
(
m
o
d
p
)
根
据
阶
的
性
质
有
∴
a
c
≡
t
(
m
o
d
φ
(
p
)
)
根
据
e
x
g
c
d
求
出
c
,
也
是
一
个
特
解
。
\\therefore g^{ac}\\equiv g^t(mod~p)\\\\ 根据阶的性质有\\\\ \\therefore ac\\equiv t(mod~\\varphi(p))\\\\ 根据exgcd求出c,也是一个特解。
∴gac≡gt(mod p)根据阶的性质有∴ac≡t(mod φ(p))根据exgcd求出c,也是一个特解。
求全部的解:
我们在已知一个特解
g
c
g^c
gc的情况下,我们要得到全部解。
∵
g
φ
(
p
)
≡
1
(
m
o
d
p
)
∴
∀
t
∈
Z
,
x
a
≡
g
c
a
+
t
φ
(
p
)
a
(
m
o
d
p
)
∴
∀
t
∈
Z
且
a
∣
t
φ
(
p
)
,
x
≡
g
c
+
t
φ
(
p
)
a
(
m
o
d
p
)
∵
a
∣
t
φ
(
p
)
∴
a
g
c
d
(
a
,
φ
(
p
)
)
∣
t
∴
t
=
a
g
c
d
(
a
,
φ
(
p
)
)
i
∴
全
部
的
解
为
:
∀
i
∈
Z
,
x
≡
g
c
+
φ
(
p
)
g
c
d
(
a
,
φ
(
p
)
)
i
(
m
o
d
p
)
(
解
的
个
数
为
g
c
d
(
a
,
φ
(
p
)
)
)
\\because g^{\\varphi(p)}\\equiv1(mod~p)\\\\ \\therefore\\forall t\\in\\mathbb{Z}, x^a\\equiv g^{ca+\\frac {t\\varphi(p)}a}(mod~p)\\\\ \\therefore\\forall t\\in\\mathbb{Z}且a|t\\varphi(p),x\\equiv g^{c+\\frac{t\\varphi(p)}{a}}(mod~p)\\\\ \\because a|t\\varphi(p)\\\\ \\therefore \\frac a{gcd(a, \\varphi(p))}|t\\\\ \\therefore t =\\frac a{gcd(a, \\varphi(p))}i\\\\ \\therefore 全部的解为:\\forall i\\in\\mathbb{Z},x\\equiv g^{c+\\frac {\\varphi(p)}{gcd(a,\\varphi(p))}i}(mod~p)\\\\ (解的个数为gcd(a,\\varphi(p)))\\\\
∵gφ(p)≡1(mod p)∴∀t∈Z,xa≡gca+atφ(p)(mod p)∴∀t∈Z且a∣tφ(p),x≡gc+atφ(p)(mod p)∵a∣tφ(p)∴gcd(a,φ(p))a∣t∴t=gcd(a,φ(p))ai∴全部的解为:∀i∈Z,x≡gc+gcd(a,φ(p))φ(p)i(mod p)(解的个数为gcd(a,φ(p)))
题目:
P3306 [SDOI2013] 随机数生成器
根据题意将原式化成等比数列的形式。再去推式子。
x i + 1 ≡ a x i + b ( m o d p ) x i + 1 + b a − 1 ≡ a ( x i + b a − 1 ) ( m o d p ) x n ≡ t ( m o d p ) a n − 1 ( x 1 + b a − 1 ) − b a − 1 ≡ t ( m o d p ) a n − 1 ≡ ( t + b a − 1 ) ∗ i n v ( x 1 + b a − 1 ) ( m o d p ) x_{i+1}\\equiv ax_i+b(mod~p)\\\\ x_{i+1}+\\frac b{a-1}\\equiv a(x_i+\\frac b{a-1})(mod~p)\\\\ x_n\\equiv t(mod~p)\\\\ a^{n-1}(x_1+\\frac b{a-1})-\\frac b{a-1}\\equiv t(mod~p)\\\\ a^{n-1}\\equiv (t + \\frac b{a-1})*inv(x_1+\\frac b{a-1})(mod~p)\\\\ xi+1≡axi+b(mod p)xi+1+a−1b≡a(xi+a−1b)(mod p)xn≡t(mod p)an−1(x1+a−1b)−a−1b≡编程挑战JavaScript进阶篇(慕课网题目)