算法简介
Gosper 算法是一个用来求一些超几何项的离散不定积分的封闭形式的算法。特别地,所求的是一些形如 $$ t_n=P(n)\cdot\dfrac{\prod\limits_{i=1}^s(a_in+b_i)!}{\prod\limits_{i=1}^t(c_in+d_i)!} $$ 的函数的离散不定积分。
形式化地,我们想要求出以另一个超几何项 $z_n$ 满足 $$ z_{n+1}-z_n=t_n.\tag{1} $$
Gosper 算法是一个用来求一些超几何项的离散不定积分的封闭形式的算法。特别地,所求的是一些形如 $$ t_n=P(n)\cdot\dfrac{\prod\limits_{i=1}^s(a_in+b_i)!}{\prod\limits_{i=1}^t(c_in+d_i)!} $$ 的函数的离散不定积分。
形式化地,我们想要求出以另一个超几何项 $z_n$ 满足 $$ z_{n+1}-z_n=t_n.\tag{1} $$
形如 $q\times 2^k+1$ 的素数,以及它们的最小原根。
由于 |
符号很难在表格里打出来,所以在打 |
的时候使用了公式来代替单行代码。
优先等级 | 运算符 | 结合顺序 |
---|---|---|
1 | :: |
从左到右 |
2 | var++ var-- type() type{} func() arr[] . -> |
从左到右 |
3 | ++var --var +var -var ! ~ (type) *ptr &var sizeof co_await new new[] delete delete[] |
从右到左 |
4 | .* ->* |
从左到右 |
5 | var1*var2 var1/var2 var1%var2 |
从左到右 |
6 | var1+var2 var1-var2 |
从左到右 |
7 | << >> |
从左到右 |
8 | <=> |
从左到右 |
9 | < <= > >= |
从左到右 |
10 | == != |
从左到右 |
11 | var1&var2 |
从左到右 |
12 | ^ |
从左到右 |
13 | $\mid$ | 从左到右 |
14 | && |
从左到右 |
15 | $\mid\mid$ | 从左到右 |
16 | ?: throw co_yield = += -= *= /= %= <<= >>= &= $\mid=$ ^= |
从右到左 |
17 | , |
从左到右 |