问题标签 [largenumber]
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.
math - 计算大数的最快编程语言?
如果我想计算数以亿计的数字(正整数),哪种编程语言最适合呢?
目前我正在使用 python 并且脚本正在运行并且它很容易编码,但我担心它的速度。
我对组装一无所知,所以虽然它可能是最快的,但我宁愿不使用它。C是这里的最佳选择吗?
我必须使用的具体操作是 *、-、%(mod)、求幂、相等测试(if 语句)、基本循环和某种输出能力(例如控制台输出)。
非常感谢。
java - 处理大数
我有这个问题:
palindrome
如果从左到右和从右到左读取时,它在十进制系统中的表示相同,则称为正整数。K
对于给定的不超过1000000
位数的正整数,将大于的最小回文值写入K
输出。数字始终显示不带前导零。输入
第一行包含 integer t
,即测试用例的数量。整数K
在下t
一行给出。输出
对于每个K
,输出大于 的最小回文数K
。例子
输入:
输出:
我的代码将输入转换为字符串并评估字符串的任一端进行相应调整并向内移动。但是,问题要求它可以采用长达 10^6 位的值,如果我尝试解析大数字,我会得到一个数字格式异常,即
或者
并且LARGENUMBER
超出范围。谁能想到解决方法或如何处理如此大的数字?
c++ - 字符串中大数的除法
我编写了一个程序来使用 C++ 中的字符串来划分大数。那就是一个字符串用于存储数字的每个数字。我使用连续减法得到余数和商。
但问题是这种方法对于非常大的数字非常慢。还有什么其他可能的方法可以使它快速?
c++ - 需要帮助在 C++ 中实现 Karatsuba 算法
首先是一点背景:
- 我是第一次发帖,是大学学生(不是编程)。
- 这不是作业问题,我只是为了好玩。
- 我的编程经验包括一个学期(3 个月)的 C++ 和一些高中 QBasic。
- 是的,我看过 GMP 和 Bignum 库;从原始代码中学习东西是非常困难的,尤其是在不了解程序员的意图的情况下。此外,我想学习如何为自己做这件事。
我正在为任意大的整数编写乘法函数。我使用字符数组来表示这些数字,最后用 + 或 - 作为标记(例如“12345+”、“31415-”)。
我目前正在实施 Karatsuba 算法。问题在于,使用递归和动态内存分配,该函数比简单方法慢 5 倍。
我可以使用一些提示来减少运行时间。
c++ - 如何将大整数转换为基数 2^32?
首先,我是为自己做的,所以请不要建议“使用 GMP / xint / bignum”(如果它甚至适用的话)。
我正在寻找一种将大整数(例如,超过 9000 位)转换为 2 32 个表示形式的 int32 数组的方法。这些数字将以 10 进制字符串开始。
例如,如果我想将string a = "4294967300"
刚刚结束的(以 10 为底)转换INT_MAX
为新的以 2 为底的32数组,则为int32_t b[] = {1,5}
. 如果int32_t b[] = {3,2485738}
,则基数为 10 的数字将是3 * 2^32 + 2485738
。显然,我将使用的数字甚至超出了 int64 的范围,因此我无法将字符串完全转换为整数并修改我的成功方式。
我有一个以 10 为底的减法函数。现在我想我会subtraction(char* number, "2^32")
在得到负数之前计算多少次,但对于更大的数字可能需要很长时间。
有人可以提出不同的转换方法吗?谢谢。
编辑
对不起,如果您没有看到标签,我正在使用C++
r - 大整数的乘法
我尝试乘以111111111*111111111
,这与 相同111111111^2
,但结果不正确。它应该给出12345678987654321
,但它给出了一个舍入误差。我是否需要对长数字使用一些特殊的变量类型,或者这是 R 的错误?
java - 生成非常大的随机数java
我们如何在java中生成非常大的随机数?我说的是10000位数字?我知道我们必须使用 BigInteger 但我们该怎么做呢?做这样的事情最有效的方法是什么?请提供一个小例子。谢谢你。
c++ - 非常大的 A 划分为非常大的 B
我已经做了一个长数乘法、长数加法、长数减法和长数除法的函数。但是分割需要很长时间,如何改进呢?这是我的代码:
perl - perl中非常大的数字的快速乘法
我有 50,000 个数字(范围从 0 到 50,000)。我需要(这些数字的乘积)MOD 1000000007。下面的代码太简单了,应该还有其他方法。听说过“分而治之”技术,但不知道如何实施。
请建议。
c++ - C++ - GMP pow() 函数
我正在尝试pow(2,500)
用 C++ 做。但我认为long long
还不够。
有人说我可以用gmp.h
。pow(2,500)
但是我该怎么做gmp
?