问题标签 [biginteger]
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.
algorithm - 大数字,通用算法?
我想知道什么是大数字,以及用于处理它们的一些常用算法是什么。我在 Coders at Work 中听到过这个词,在一次采访中,有人要求我创建一个库来处理大数字。
java - java.bigInteger valueOf 是如何工作的?
我正在制作一个没有 BigInteger、BigDecimal 等的涉及大数字的项目。我已经设法完成了所有基础知识,但现在我需要增加计算阶乘的能力。我的 BigNumber 将数据存储为 int[] 。
这是 BigInteger 的示例解决方案,但如果没有我的号码的实际值,我将无法使用它。
那么如何计算价值呢?将整数从最后一个到第一个相加,将 10 乘以 10,将 100 乘以 100 等等,然后将其存储多久?
BigInteger 的来源:http: //developer.classpath.org/doc/java/math/BigInteger-source.html
java - BigInteger.valueOf() 限制
BigInteger 的 valueOf 是否有任何限制?我不确定,但在某处读到,给定的数字只能是长度 = 长。
java - BigInteger 上的操作有多复杂?
这些方法的复杂性是什么,目前multiply
是什么?文档中(也没有其他任何地方)没有提到计算复杂性。divide
pow
BigInteger
java - BigInteger 是否会溢出?
API 文档说
规范中关于溢出的所有细节都被忽略了,因为 BigInteger 被制作得尽可能大以适应操作的结果。
假设您有足够的可用内存,这是否意味着 BigInteger 永远不会溢出?如果是这样,为什么我们让一些“类型”溢出而有些不?
随着语言的发展,它是否会偏向对程序员隐藏溢出机制的类型?
c# - 优化 Karatsuba 实施
因此,我正在尝试改进 .net 4BigInteger
类提供的一些操作,因为这些操作看起来是二次的。我做了一个粗略的 Karatsuba 实现,但它仍然比我预期的要慢。
主要问题似乎是 BigInteger 没有提供简单的方法来计算位数,因此我必须使用 BigInteger.Log(..., 2)。根据 Visual Studio,大约 80-90% 的时间用于计算对数。
那么,我该怎么做才能加快速度呢?
java - 我应该使用什么数据结构来创建自己的“BigInteger”类?
作为一项可选任务,我正在考虑编写自己的 BigInteger 类实现,我将在其中提供自己的加法、减法、乘法等方法。
这将是任意长的整数,甚至是数百位数。
在对这些数字进行数学运算时,逐个数字并不难,您认为代表我的“BigInteger”的最佳数据结构是什么?
起初我正在考虑使用数组,但后来我想在大的加法或乘法之后我仍然可能会溢出(数组插槽用完)。这是否是使用链表的好案例,因为我可以使用 O(1) 时间复杂度来处理数字?
有没有比链表更适合的其他数据结构?我的数据结构所持有的类型应该是我可以使用的最小整数类型吗?
另外,我应该注意如何存储“进位”变量吗?它本身应该属于我的“BigInteger”类型吗?
c# - C#:我应该如何处理大数的算术?
我正在编写一个应用程序,该应用程序涉及带有大量数字的算术运算。我以前写过一个类,它通过将大数定义为字符串然后使用慢算术字符串函数来简化处理大数。这是最好的方法吗?如果没有,我应该如何解决这个问题?C# 有针对这种情况的内置功能吗?
integer - 在没有 unsigned int 数据类型的情况下存储 unsigned int 方法的优缺点
我有 64 位无符号整数的值,我需要将它们存储在没有无符号整数类型的 mongodb 中。我看到了将它们存储在其他字段类型中并转换进出的三种主要可能性:
使用带符号的 int 可能是最简单和最节省空间的,但缺点是它们不可读,如果有人忘记进行转换,其中一些会起作用,这可能会掩盖错误。
对于没有经验的程序员来说,原始二进制文件可能是最难处理的,并且还存在非人类可读性的问题。
字符串表示是空间效率最低的(unicode 中约 40 个字节,每个字段 8 个字节),但至少所有可能的值都会正确映射,并且查询只需要转换为字符串,而不是更复杂的转换.
我需要这些值可以从不同的平台获得,因此单一驱动程序特定的解决方案不是一个选项。
我错过了什么主要的优点和缺点?你会用哪一个?
java - 如何在 Java 中生成随机 BigInteger 值?
我需要在 0(包括)到 n(不包括)范围内生成任意大的随机整数。我最初的想法是调用nextDouble
并乘以 n,但是一旦 n 大于 2 53,结果将不再均匀分布。
BigInteger
有以下可用的构造函数:
构造一个随机生成的 BigInteger,均匀分布在 0 到 (2 numBits - 1) 的范围内,包括 0 到 (2 numBits - 1)。
如何使用它来获得 0 - n 范围内的随机值,其中 n 不是 2 的幂?