算法简介
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 | , |
从左到右 |