问题标签 [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.

0 投票
3 回答
1215 浏览

c++ - 避免在 libgmp 中中止

我有一些使用 libgmp 的代码。在某些时候,用户可能会请求一个非常大的阶乘。不幸的是,这会导致 libgmp 发出中止信号。

例如下面的代码:

结果是:

显然,产生的数字真的很大。无论如何,有没有比中止更优雅地处理错误。这是一个基于 GUI 的应用程序,它中止几乎是处理此类问题的最不理想的方式。

0 投票
3 回答
204 浏览

c - 数学/大数挑战需要帮助

我正在为以下代码(/挑战)而苦苦挣扎,我想知道解决它的最佳方法是什么。

伪(类似)代码

如果我正确理解代码,它会:

其中 'firstargument' 是传递给程序的参数,例如:./program 123456...

实际代码

0 投票
1 回答
1870 浏览

eclipse-cdt - 在 Eclipse C++ (CDT Helios) 中使用 GMP 时出现问题

我想在 CDT 中编译我的代码:

当我编译时,出现了一些这样的错误:

我必须做什么?我在 GCC Linker 中添加了 libgmp.a 和 libgmpxx.a 但仍然遇到这些问题。非常感谢您的回答。:)

0 投票
1 回答
446 浏览

gmp - How to find the greatest power of 2 dividing a number using GMP?

According to the GMP documentation here:

Function: unsigned long int mpz_remove (mpz_t rop, mpz_t op, mpz_t f)

Remove all occurrences of the factor f from op and store the result in rop. The return value is how many such occurrences were removed.

So the mpz_remove function should be able to be used to answer the titled question. At the moment my code looks like this:

which works fine, but the result I want is K0 divided by temp (and not temp itself) [which I could get by adding a subsequent division operation, but that seems wasteful].

How should I actually get K0/temp?

0 投票
3 回答
831 浏览

c++ - GMP 和智能指针

我正在使用gnump并且有一个必须返回的函数mpz_t。所以我必须使用原始指针来返回一个值。我用 for 指针分配空间new并将其作为参数发送到我的函数中。

我认为最好使用智能指针。但我之前没有和他们合作过。我阅读了手册,但仍然无法理解如何shared_ptr正确使用从函数返回变量。

如果有任何例子,我将不胜感激。

0 投票
1 回答
2942 浏览

android-ndk - Android NDK 编译 gmp 库

如何为 android ndk 编译 GMP 作为我可以在我的项目中重用的静态或共享库/

0 投票
4 回答
8876 浏览

c++ - 使用 gmp 有效地分解大数

我需要得到所有可以轻松达到 1k 位的大数的主要因素。这些数字实际上是随机的,所以应该不难。我如何有效地做到这一点?我将 C++ 与 GMP 库一起使用。

编辑:我想你们都误解了我。
我所说的素数的意思是得到这个数字的所有素数。
对不起我的英语,在我的语言中,prime 和 factor 是相同的 :)


澄清(来自OP的其他帖子):

我需要的是一种使用 C++ 和 GMP(Gnu Multiple Precession lib)或更少优选任何其他方式来有效分解(找到一个数字的素数)大数(可能达到 2048 位)的方法。这些数字实际上是随机的,因此很难考虑的可能性很小,即使这个数字很难考虑,我也可以重新计算这个数字(虽然不能选择)。

0 投票
7 回答
1807 浏览

c++ - 因式分解大数

可能的重复:
使用 gmp 有效地分解一个大数

我知道我已经发布了它,但是人们误解了我的意思,直到我修复它之前,帖子都死了。
我需要的是一种使用 C++ 和 GMP(Gnu Multiple Precession lib)或更少优选任何其他方式来有效分解(找到一个数字的素数)大数(可能达到 2048 位)的方法。
这些数字实际上是随机的,因此很难考虑的可能性很小,即使这个数字很难考虑,我也可以重新计算这个数字(虽然不能选择)。
我该怎么做?

0 投票
1 回答
958 浏览

php - 在 32 位系统中对 64 位整数使用位操作(无 php_gpm 扩展)

我找到了一些使用 32 位值进行 64 位旋转的有效方法,但它不在 PHP 中。

最大的问题是我从远程服务器获得的大整数9223372036854775808(10)hexadecimal 8000000000000000(16).

没有机会php_gmp (extension)在生产服务器上启用,但我必须检查接收值中的选定位。生产和开发服务器都是32bits machines.

0 投票
2 回答
279 浏览

macos - 这可能是什么?[程序错误]

我在解决这个问题时遇到了一些麻烦。所以是时候寻求帮助了。

操作系统:OSX、雪豹

gcc:gcc 的 Xcode 版本,4.2.1

库:gmp、gmpxx

问题:一个函数在最后崩溃了:

我没有在函数init中调用 free() ,并且该函数确实可以正确运行到右花括号 .. 所以崩溃点必须在本地对象的析构函数中(对吗?)

有趣的是:

a)如果静态链接,程序(似乎)可以正常工作,只有在代码内置到 *.dylib 并动态加载时才会失败。

b) 程序在两个完全不同的 gmp/gmpxx 版本中以同样的方式失败。[4.3 什么的和 5.01]

c) 静态和动态链接版本都可以在 Ubuntu 10.5 LTS 上正常工作

代码由我的编译器生成,不是手写代码。用户代码由顶级驱动程序运行。系统成功运行了数百个回归测试。但是,在此特定测试用例中使用了以下手写代码:

但对我来说看起来不错。该函数的堆栈帧包含几个 mpz_class、mpq_class 和 mpf_class 对象。

除了 gmp/gmpxx 中的错误之外,我唯一能想到的另一件事是我的运行时系统或生成的代码正在破坏内存。未被分配的被“释放”的地址是可疑的(它离堆很远)。我构建了一个带有 -g 标志的 gmp 版本,但没有获得更多信息(这表明从 gmpxx 类析构函数中释放它并不是一件坏事)。

我需要一些想法!我不知道现在该往哪里看。提前谢谢:)

链接到源

http://felix-lang.org:1116/$/home/skaller/felix/felix/build/release-optimized/test/gmp/gmp-0.cpp _

Meta:SO的降价不起作用!所以你必须手动复制。

不妨加入到 Felix 代码的链接,因为它更具可读性并且有一些有趣的东西(比如用户定义的语法,如果你去库,你可以看到类型类被实例化)

http://felix-lang.org:1116/$/home/skaller/felix/felix/build/release-optimized/test/gmp/gmp-0.flx _