问题标签 [gmpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
131 浏览

python - 如何在一系列数字上比较各种乘法算法

在 MITOpencourseware(6.006 第 12 课)中进行 MIT 讲座时,我遇到了 4 种乘法算法(将两个 n 位数字相乘)-

  1. O(n^2) 复杂度的普通朴素方法
  2. Karatsuba 算法 - O(n^1.584)
  3. Toom-Cook(Toom3) - O(n^1.465)
  4. Schonhage-Strassen - O(nlog(n)log(log(n)))

现在要研究的是,在哪个阈值点(即 n 的值),一种方法作为更好的算法超越了另一种方法。有人提到以上所有内容都在 gmpy 包中。

为了尝试这一点,我参考了以下链接中的 gmpy2 包文档 - https://gmpy2.readthedocs.io/en/latest/intro.html

然而,在浏览本文档的部分内容时,gmpy2 似乎更多的是处理大量数字。特别是,我没有找到实现上述 4 种算法的单独函数。那么 gmpy2 的任何部分是否实现了这些算法,所以我可以根据 n(位数)绘制这些算法的运行时间?

0 投票
1 回答
137 浏览

python - 为什么 gmpy2 在复幂运算中这么慢?

我在 gmpy2 中使用复数并注意到它很慢。我缩小了幂运算符的范围。起初我认为这只是因为它很复杂。但后来我将它与使用gmpy2 的 mpmath 进行了比较,它的速度要快得多:

纯复数幂运算非常慢,但 mpmath 仍然比 gmpy2 快 40%。由于 mpmath 是 Python,我认为它会慢得多,但显然情况并非如此。gmpy2在这里怎么这么慢?

0 投票
1 回答
241 浏览

python - Python:用高精度浮点数逆矩阵

我正在关注如何在 Python 中处理多精度算术的教程。
最后,我想要一个numpy具有任意高精度浮点数的数组,我需要对该矩阵求逆。

因此我们有:

其次是数据生成:

和有问题的部分:

有人知道如何实现我正在努力的目标吗?

0 投票
2 回答
250 浏览

python - 使用 gmpy2 产生错误的素数生成器

我正在尝试在 Jupyter Notebooks 中测试一个使用 gmpy2 生成素数的函数,但我得到了以下输出。

为什么函数成功输出序列中的前两个数字(2 和 3)但随后产生错误?是什么mpz意思?

0 投票
1 回答
43 浏览

python - Pylint 无法识别 gmpy2 成员

我在 Kali Linux(WSL2)上使用 pylint 和 gmpy2。Pylint 多次抱怨找不到 gmpy2 成员。我怎样才能避免这种情况?

这是一个小例子:

pylint 的结果是

tst.py:2:6: E1101: 模块“gmpy2”没有“is_even”成员(无成员)

我也在 ArchLinux 上试过这个,结果是一样的。

0 投票
1 回答
131 浏览

python - PyCharm 不会安装 gmpy2 - 尝试了所有版本

我正在尝试安装名为 gmpy2 的软件包,但 PyCharm 不会。尝试谷歌搜索并找不到任何对我有帮助的东西(或者我可能只是做得不对)。

我将 Python 3.9 与 PyCharm 一起使用。

这是 PyCharm 给我的错误弹出窗口的图片,以及它所说的内容:

错误信息:

PYCHARM 弹出错误窗口的图片

0 投票
0 回答
51 浏览

python - 如何使用 gmpy2 数据类型定义 Cython 数组/内存视图?

我想了解如何使用 gmpy2 数据类型定义数组/类型化内存视图。我不明白如何初始化这样的数组。我目前非常基本的尝试如下所示:

该错误是由于 test() 的第一行,Cython 不明白我试图定义一个形状为 2 的数组,而是将其解释为 Python 对象的数组元素。

一个类似的实现,但使用整数:

编辑:

看着这个关于制作 cdef 类列表的问题,我似乎已经成功了。

我仍然不确定制作类列表的限制是否扩展到制作 gmpy2 数据类型列表,如果今天仍然存在这样的限制,以及是否可以对上述初始化 gmpy2 整数的方式进行改进。

我打算制作和操作大型 gmpy2 浮点数组,因此欢迎对上述实现进行任何改进。

0 投票
1 回答
214 浏览

ubuntu - 如何在 Google Colab 上安装 gmpy2?

我正在尝试通过以下命令在Google Colab上安装“gmpy2” :

我得到错误:

Google Colab 适用于描述:Ubuntu 18.04.5 LTS 代号:仿生模型名称:AMD EPYC 7B12

为什么我不能安装“gmpy2”?此错误的原因可能是什么?

0 投票
1 回答
418 浏览

python - 在 Python 中使用 gmpy2 库生成 N 位随机数

我想使用gmpy2Python 中的库生成随机数的 N 位数。random我知道使用库可以做到这一点,但使用gmpy2是一个要求。

mpz_random()函数生成一个从 0 到 N-1 的随机数。我不确定如何使用这个库来获得长度为 N 的随机数,例如 N=100。

INPUT: N(位数)

输出:长度为 N 的随机整数

例子:

我目前的代码是:

0 投票
3 回答
65 浏览

python - 如何检查变量是否是 Python 3 中 mpfr 的实例?

我想知道如何检查变量是否为 mpfr 类型,这听起来可能微不足道,但简单却isinstance(v, mpfr)无法做到这一点。

示例:创建一个变量是 mpfr 的实例,如何验证该变量是 mpfr 的实例?

最直观的方式失败了:

因为mpfr是一个函数:

gmpy2只有一个名为 的属性mpfr,就是上面的函数。

然而,mpfr函数输出的类也被称为mpfr

但这mpfr不是mpfr主命名空间中的函数:

到目前为止,我只mpfr通过创建一个空mpfr实例并使用它的__class__属性来检查变量是否是一个实例:

如何<class 'mpfr'>直接访问?