问题标签 [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.
python - 如何在一系列数字上比较各种乘法算法
在 MITOpencourseware(6.006 第 12 课)中进行 MIT 讲座时,我遇到了 4 种乘法算法(将两个 n 位数字相乘)-
- O(n^2) 复杂度的普通朴素方法
- Karatsuba 算法 - O(n^1.584)
- Toom-Cook(Toom3) - O(n^1.465)
- Schonhage-Strassen - O(nlog(n)log(log(n)))
现在要研究的是,在哪个阈值点(即 n 的值),一种方法作为更好的算法超越了另一种方法。有人提到以上所有内容都在 gmpy 包中。
为了尝试这一点,我参考了以下链接中的 gmpy2 包文档 - https://gmpy2.readthedocs.io/en/latest/intro.html
然而,在浏览本文档的部分内容时,gmpy2 似乎更多的是处理大量数字。特别是,我没有找到实现上述 4 种算法的单独函数。那么 gmpy2 的任何部分是否实现了这些算法,所以我可以根据 n(位数)绘制这些算法的运行时间?
python - 为什么 gmpy2 在复幂运算中这么慢?
我在 gmpy2 中使用复数并注意到它很慢。我缩小了幂运算符的范围。起初我认为这只是因为它很复杂。但后来我将它与使用gmpy2 的 mpmath 进行了比较,它的速度要快得多:
纯复数幂运算非常慢,但 mpmath 仍然比 gmpy2 快 40%。由于 mpmath 是 Python,我认为它会慢得多,但显然情况并非如此。gmpy2在这里怎么这么慢?
python - Python:用高精度浮点数逆矩阵
我正在关注如何在 Python 中处理多精度算术的教程。
最后,我想要一个numpy
具有任意高精度浮点数的数组,我需要对该矩阵求逆。
因此我们有:
其次是数据生成:
和有问题的部分:
有人知道如何实现我正在努力的目标吗?
python - 使用 gmpy2 产生错误的素数生成器
我正在尝试在 Jupyter Notebooks 中测试一个使用 gmpy2 生成素数的函数,但我得到了以下输出。
为什么函数成功输出序列中的前两个数字(2 和 3)但随后产生错误?是什么mpz
意思?
python - Pylint 无法识别 gmpy2 成员
我在 Kali Linux(WSL2)上使用 pylint 和 gmpy2。Pylint 多次抱怨找不到 gmpy2 成员。我怎样才能避免这种情况?
这是一个小例子:
pylint 的结果是
tst.py:2:6: E1101: 模块“gmpy2”没有“is_even”成员(无成员)
我也在 ArchLinux 上试过这个,结果是一样的。
python - 如何使用 gmpy2 数据类型定义 Cython 数组/内存视图?
我想了解如何使用 gmpy2 数据类型定义数组/类型化内存视图。我不明白如何初始化这样的数组。我目前非常基本的尝试如下所示:
该错误是由于 test() 的第一行,Cython 不明白我试图定义一个形状为 2 的数组,而是将其解释为 Python 对象的数组元素。
一个类似的实现,但使用整数:
编辑:
看着这个关于制作 cdef 类列表的问题,我似乎已经成功了。
我仍然不确定制作类列表的限制是否扩展到制作 gmpy2 数据类型列表,如果今天仍然存在这样的限制,以及是否可以对上述初始化 gmpy2 整数的方式进行改进。
我打算制作和操作大型 gmpy2 浮点数组,因此欢迎对上述实现进行任何改进。
ubuntu - 如何在 Google Colab 上安装 gmpy2?
我正在尝试通过以下命令在Google Colab上安装“gmpy2” :
我得到错误:
Google Colab 适用于描述:Ubuntu 18.04.5 LTS 代号:仿生模型名称:AMD EPYC 7B12
为什么我不能安装“gmpy2”?此错误的原因可能是什么?
python - 在 Python 中使用 gmpy2 库生成 N 位随机数
我想使用gmpy2
Python 中的库生成随机数的 N 位数。random
我知道使用库可以做到这一点,但使用gmpy2
是一个要求。
mpz_random()函数生成一个从 0 到 N-1 的随机数。我不确定如何使用这个库来获得长度为 N 的随机数,例如 N=100。
INPUT: N(位数)
输出:长度为 N 的随机整数
例子:
我目前的代码是:
python - 如何检查变量是否是 Python 3 中 mpfr 的实例?
我想知道如何检查变量是否为 mpfr 类型,这听起来可能微不足道,但简单却isinstance(v, mpfr)
无法做到这一点。
示例:创建一个变量是 mpfr 的实例,如何验证该变量是 mpfr 的实例?
最直观的方式失败了:
因为mpfr
是一个函数:
gmpy2
只有一个名为 的属性mpfr
,就是上面的函数。
然而,mpfr
函数输出的类也被称为mpfr
:
但这mpfr
不是mpfr
主命名空间中的函数:
到目前为止,我只mpfr
通过创建一个空mpfr
实例并使用它的__class__
属性来检查变量是否是一个实例:
如何<class 'mpfr'>
直接访问?