问题标签 [gmp]
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.
c - 这是 GMP 4.1.2 中的错误还是我做错了什么?
对于这段代码,我传递了字符串"kellogs special k"
,我得到1
这意味着字符串是一个整数。我到底做错了什么?还是 GMP 问题?
顺便说一句,如果有人建议使用更新的 GMP,请给我 Windows 的静态 LIB 的网址。TIA。
c - 假设 C 中的整数由硬件规范处理还是在软件中处理?
假设 C 中的整数由硬件规范处理还是在软件中处理?
通过整数,我指的是原始“int”
基本思想是,如果 C 中的整数不依赖于硬件,那么让 gcc 实现不同的整数处理程序会违反标准。这样,您可以拥有传统的 32 位 int 处理程序,然后您还可以拥有 256 位整数的处理程序,甚至可能是动态大小的 int。
我确实知道 long 和 long long,但我不确定它们是否独立于提供的硬件,我只想指定构建工具链时要使用的“int”处理程序的大小/类型。
我也理解这样做的危险(因为用 32 位整数编译器构建 256 位整数会很糟糕!),但是对于那些需要 gmp 库之类的代码,我认为它会使代码的可读性更好. 兼容性将是相同的,但依赖于编译器而不是代码本身。
疯狂的想法,我知道......但回到原来的问题:
假设 C 中的整数由硬件规范处理还是在软件中处理?
php - 在 PHP 中,如何生成一个大的伪随机数?
我正在寻找一种使用 PHP生成大随机数的方法,例如:
我看到的是gmp_random () 但它不允许我只指定每个肢体的位数的下限和上限(我不知道它是什么)。
编辑:Axsuuls 的答案似乎与我想要的非常接近,并且与 gmp_random 非常相似,但是在一种情况下似乎只有一个缺陷。
假设我不想得到一个随机数:
- 1225468798745475454898787465154
和:
- 1225468798745475454898787465200
所以如果函数调用BigRandomNumber ():
这可以轻松返回超出指定边界的 9999999999999999999999999999999。
如何使用最小/最大边界而不是长度值?
这应该返回一个介于1225468798745475454898787465 [154 .. 200]之间的随机数。
作为参考,我认为解决方案可能必须使用此问题中提供的功能。
编辑:上面的帖子被删除了,这里是:
php - 使用 bc_math 或 GMP 计算根
我在使用 bc_math 计算相当大数的根时遇到问题,例如:
有谁知道我可以如何规避这个?gmp_pow() 也不起作用。
gmp - 处理 GMP 中的表达式
我最近向自己介绍了高精度算术的 GMP 库。它似乎很容易使用,但在我的第一个程序中,我遇到了实际问题。如何评估表达式。例如,如果我有 "1+8*z^2" 并且 z 是一个 mpz_t "大整数" 变量,我该如何快速评估呢?(我正在编写的程序中有更大的表达式。)目前,我正在手动执行每个操作并将结果存储在临时变量中,例如“1+8*z^2”表达式:
1) 首先做 mpt_mul(z,z,z) 平方 z
2) 然后定义一个名为“8”的 mpz_t 变量,其值为 8。
3) 将第一步的结果乘以这个 8 并存储在 temp 变量中。
4) 定义名为“one”的 mpz_t 变量,其值为 1。
5) 将此添加到步骤 3 的结果中以找到最终答案。
这是我应该做的吗?或者,还有更好的方法?如果有 GMP 的用户手册可以帮助人们入门,那将非常有帮助,但只有参考手册。
c++ - Bignum 实现有效地添加小整数
我一直在使用 python 的原生 bignums 作为算法,并决定尝试通过将其转换为 C++ 来加速它。当我使用 long long 时,C++ 比 python 快大约 100 倍,但是当我在 C++ 中使用 GMP 绑定时,它只比 python 快 10 倍(对于适合 long long 的相同情况)。
是否有更好的 bignum 实现来进行大量的小加法?例如,我们有一个大数字 N,我们将添加很多小的 +1、+21、+1 等,并且每隔一段时间添加另一个大数字 M?
c - 指向 mpz_t 数组的指针的双重释放错误
我目前正在学习 libgmp,为此我正在编写一个找到主要因素的小程序。我的程序调用了一个函数,它用不同数量的 mpz_t 整数填充数组,给定数字的素数,我需要返回。我打算将最后一个元素设置为 NULL,所以我知道该函数找到了多少个 mpz_t 整数。
我的问题是我的指向 mpz_t 整数的指针数组出现双重免费错误。我写了一些示例代码来说明我的问题:
2 和 5 打印到标准输出,所以分配似乎没问题。但是我在下面得到了双重免费错误:
我仍然完全习惯了指针,并且 gcc 没有给出任何错误,但是我很确定这是错误的,我应该做类似的事情
代替:
但这给了我一个编译器错误
无论如何,我的问题是:
- 我确定我应该取消引用 mpz_init_set_ui() 调用中的指针,为什么这是错误的?
- 有没有更好的方法来做到这一点?我应该使用链表吗?(我还没有学过链表,我认为数组最适合这个,但如果我真的让事情变得更加困难,请告诉我)3.创建一个结构会更好用一个指向我的数组的指针和另一个带有我数组中元素数量的变量,然后返回一个指向它的指针?
该平台是 linux 32 位,以防万一。
这是我刚才的代码,我要修改,我在堆栈上声明了mpz_t的数组。但我想让 main() 成为一个函数:
在此先感谢人们,
python - 任何地方的 Gmpy 文档?
我安装了gmpy-1.11rc1.win32-py2.6.exe,但是不知道怎么用,我可以看到一些导出的函数比如mpz,mpq,mpf等,但是我怎么调用这样的函数GNU MP C 库中的 mpz_probab_prime_p()?
我在Google Code上查看了 gmpy ,但仍然无法弄清楚。我也无法在任何地方找到 gmpy 的文档。谢谢。
shared-libraries - 在 CentOs 5.3 上使用 gmp 5
我使用的是 CentOS 版本 5.3 x86_64,Intel X5550 处理器。我在这个系统上编译了 gmp 5.0.0。当我尝试运行它时,我收到了错误:-
我无法理解,因为我正在使用 64 位 isa 的 64 位系统。
欢迎任何帮助。
谢谢
c - 在 Xcode 中添加链接器标志
(我不确定“flag”是否是我正在寻找的词,但我会解释一下。)
我正在尝试编译一个使用GMP大数库的程序。但是为了能够用 GMP 编译,我必须-lgmp
在命令的末尾添加。例如,如果我想编译“program.c”,我必须输入gcc program.c -lgmp
. 这从命令行很容易,但我不知道如何在 Xcode 中执行此操作。如何lgmp
在使用 Xcode 时添加标志?