问题标签 [arbitrary-precision]

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 回答
13290 浏览

algorithm - 二进制到十进制基移位

我需要一种将任意大小的无符号整数(以二进制格式存储)转换为十进制整数的算法。即使其易于阅读;)
我目前使用可能(或显然)有点幼稚的方法,通过除以十来连续计算模数和余数。
不幸的是,速度有点……蹩脚。

例如,我计算 2000^4000(使用我的 bignum 库)大约需要 1.5 秒(请不要燃烧 xD)。然而,包括必要的基本转换在内的打印需要大约 15 分钟,这很烦人。

我已经测试了 bc ,它在不到一秒的时间内完成了这两项工作。
它是如何做到的?(不是带有 ffts 的乘法东西,以及任何只有基本转换的东西)

0 投票
3 回答
9610 浏览

c++ - 将大的十六进制字符串转换为十进制字符串

我需要将一个大的(对于内置数据类型来说太大)十六进制字符串转换为具有十进制表示的字符串。例如:

我目前正在使用c++ BigInt 类,它提供了一种非常简单的方法来实现这一点(但仅限 GPL):

有没有简单的方法可以在没有 3rd 方算术库的情况下进行这种转换?或者你能推荐一个类似简单的免费(非 GPL)替代品(效率无关紧要)吗?

0 投票
3 回答
607 浏览

floating-point - 如何在D中进行高精度计算?

对于一些大学工作,我必须近似一些数字——比如带有系列的欧拉。因此我必须添加非常小的数字,但我的精度有问题。如果数字非常小,则不会影响结果。

在每一步之后,k 变得更小,但在第 10 轮之后,结果不再变化并停留在 2.71828

0 投票
1 回答
292 浏览

c++ - 将 mpfr_t(或任何其他任意精度库类型)转换为 __float128

我想我真的有两个问题。

1) 我想知道是否有人知道在 GCC 中将 mpfr_t 类型转换为 __float128 类型的方法。我环顾四周,在 mpfr bugfixes 网站上找到了一个帖子,其中有人讨论了他们尝试编写一个从 __float128 到 mpfr_t 的转换器,但它似乎在去年的某个时候下降了。

2) 如果没有人知道将 mpfr_t 转换为 __float128 的方法,有没有人知道另一个任意精度的 C/C++ 库可以

谢谢

0 投票
2 回答
179 浏览

math - 我应该使用哪个任意精度库的库?

我需要编写一些程序来计算任意精度的数字......

但我需要它将已经“确定”的数字(即低于某些错误范围)输出到文件中,以便在程序继续运行时有数字可以处理。

此外,大多数任意精度的库似乎都需要一个固定的精度,但是如果我想要动态精度怎么办,也就是说,它会一直持续下去......

0 投票
3 回答
2389 浏览

math - 从几个余数中恢复一个数(中国余数定理)

我有一个长整数,但它不是以十进制形式存储的,而是作为一组余数存储的。

所以,我没有N数字,而是一组这样的余数:

我知道,N 小于这些素数的乘积,所以中国剩余定理在这里确实有效(http://en.wikipedia.org/wiki/Chinese_remainder_theorem)。

如果我有这 6 个余数,如何N以十进制恢复?任何程序都可以做到这一点(C/C+GMP/C++/perl/java/bc)。

例如,最小 N 可以有这组余数:

0 投票
3 回答
7495 浏览

php - 如何在 PHP 中生成随机 64 位值作为十进制字符串

Oauth 需要一个随机的 64 位无符号数字,以十进制格式编码为 ASCII 字符串。你们能帮我用php实现这个吗?谢谢

0 投票
7 回答
3005 浏览

c - 如何处理不适合任何语言数据结构的大整数

我正在尝试解决编程竞赛的初步问题,其中 2 个问题我必须计算和打印一些非常大的整数(如 100!、2^100)。

我还需要一种快速的方法来计算这个大整数的幂。

你能给我一些算法或数据结构的建议吗?(顺便说一句,我读过 C 接口和实现的“任意精度算术”部分,但它对 pow() 没有帮助)

编辑:我认为通过平方方法和位移的幂运算可以提高功率,但我还需要一种快速的方法来计算这个整数的阶乘。谢谢。

EDIT2:对于那些有兴趣的人;

找到包含长度为 N 的所有位串的最短位串长度(对不起我的英语,我会举个例子)。N <= 10000

例如,包含所有长度为 2(00, 01, 10, 11) 的位串的最短位串长度是 5(11001)。

我对这个问题的解决方案是 2^n + n - 1。(所以我应该计算 2 的幂,我想我会使用位移)

另一个问题是,给定 2 个长度,找出有多少种不同的方式可以达到长度 N。例如,输入是 10、2、3。那么你应该用 2 和 3 达到 10(例如,2+ 2+2+2+2、2+2+3+3、3+2+2+3、3+3+2+2...)。1 <= N < 2^63。我们将在 mod 1000000007 中计算 anwser。

我的解决方案是 2x + 3y = N,所以 x = (N - 3y) / 2 。对于从 0 到 2*N / 3 的 y,如果 x 是整数,那么我应该计算这个 X 和 Y 的广义排列,总计 += (x+y)!/ (x!*y!)。

0 投票
2 回答
588 浏览

c++ - 用浮点任意精度 C++ 库改造现有代码,有成功的机会吗?

假设我有一段这样的代码:

是否可以使用浮点任意精度 C++ 库来改造我现有的代码?

我想简单地 add #include <cpp_arbitrary_precision_fp>,改变我的typedef double My_fp_t;intotypedef arbitrary_double_t My_fp_t;并让 C++ 的运算符重载完成它的工作......

我的主要问题是实际上我的代码没有typedef:-(所以也许我的计划注定要失败。

假设我的代码有 typedef,我还会面临什么其他问题?

0 投票
3 回答
2105 浏览

c++ - 大量浮点数,无需额外库

我有一个数百位长的浮点值(如 pi - 3 的前 100 位),需要一种对其进行操作的方法。有什么方法可以存储和操作具有大量小数的浮点数并通过内置库保持很高的精度?c++中有没有类似python的十进制模块的东西?