在Haskell中,a Int
和an 之间有什么区别Integer
?答案记录在哪里?
我正在尝试学习C并且遇到无法使用真正的大数字(即100位,1000位等).我知道存在这样做的库,但我想尝试自己实现它.
我只是想知道是否有人或者可以提供任意精度算术的非常详细,愚蠢的解释.
我想在C++中实现一个大的int类作为编程练习 - 一个可以处理大于long int的数字的类.我知道已经有几个开源实现,但我想写自己的.我试图了解正确的方法是什么.
我知道一般策略是将数字作为字符串,然后将其分解为较小的数字(例如,单个数字),并将它们放在一个数组中.此时,实现各种比较运算符应该相对简单.我主要担心的是如何实现添加和乘法等功能.
我正在寻找一种通用的方法和建议,而不是实际的工作代码.
要使用大数(100,000+)的Fermat Primality Test时需要使用模幂运算,需要进行一些非常大的计算.
当我乘以两个大数(例如:62574和62574)时,PHP似乎将结果转换为浮点数.获取模数值会返回奇怪的值.
$x = 62574 * 62574;
var_dump($x); // float(3915505476) ... correct
var_dump($x % 104659); // int(-72945) ... wtf.
Run Code Online (Sandbox Code Playgroud)
有没有办法让PHP正确执行这些计算?或者,是否有另一种方法可以找到适用于大数的模数值?
是否有一个用于JavaScript或内置的bignum库,我可以包括
<script type="text/javascript" src="the_bignum_library.js"></script>
Run Code Online (Sandbox Code Playgroud)
?
我认为我的用户更愿意在网页中输入数字并等待7秒才能获得结果,而不是下载可执行文件并点击一堆"此可执行文件可能会损害您的计算机"警告屏幕进行安装.
我考虑过自己的http://github.com/silentmatt/javascript-biginteger或http://www.mainebrook.com/john/fun/euler.html.或者你会建议从JavaScript调用Java bignum库,如apfloat?
.NET是否带有能够表示极大整数的类,例如100阶乘?如果没有,有什么好的第三方图书馆可以做到这一点?
我正在寻找一个处理真实(长,大,巨大,风暴)数字的数学解决方案.我还没有找到任何东西,但我不想认为这个问题目前还没有解决.我正在寻找一个简单的数字解决方案,如Microsoft Excel Precision(30位小数)或BigInteger(Java)解决方案.在Javascript当然.
这源于今天早些时候关于bignum库和gcc特定的C语言攻击主题的问题.具体来说,使用了这两个声明:
typedef unsigned int dword_t __attribute__((mode(DI)));
Run Code Online (Sandbox Code Playgroud)
在32位系统和
typedef unsigned int dword_t __attribute__((mode(TI)));
Run Code Online (Sandbox Code Playgroud)
在64位系统上.
我假设这是对C语言的扩展,没有办法实现它在当前(C99)标准中实现的任何目标.
所以我的问题很简单:这个假设是否正确?这些陈述对底层内存有何影响?我认为结果是我2*sizeof(uint32_t)
对于dword
32位系统和2*sizeof(uint64_t)
64位系统,我是否正确?
我正在处理那些我无法完成的大数字.使用Lua的标准数学库,似乎没有方便的方法来保持精度超过某些内部限制.我还看到有几个库可以加载以使用大数字:
此外,如果已建立绑定,则可以从Lua调用C 中的许多库.
您是否有过使用这些库中的一个或多个的经验?
我还在研究C++中任意长整数的例程.到目前为止,我已经为64位Intel CPU实现了加/减和乘法.
一切正常,但我想知道我是否可以通过使用SSE来加快速度.我浏览了SSE文档和处理器指令列表,但我找不到任何我认为可以使用的内容,原因如下:
SSE有一些整数指令,但大多数指令处理浮点.看起来它不是设计用于整数(例如,是否有较小的整数比较?)
SSE的想法是SIMD(相同的指令,多个数据),因此它提供了2或4个独立操作的指令.另一方面,我希望有一个像128位整数加(128位输入和输出)的东西.这似乎不存在.(但是?在AVX2中可能?)
整数加法和减法既不处理输入也不处理输出.因此,手动操作非常麻烦(因而也很慢).
我的问题是:我的评估是正确的还是有什么我忽略的?长整数例程可以从SSE中受益吗?特别是,它们可以帮助我编写更快的添加,子或mul例程吗?
bignum ×10
biginteger ×3
integer ×2
javascript ×2
math ×2
.net ×1
attributes ×1
c ×1
c++ ×1
c99 ×1
decimal ×1
haskell ×1
int ×1
largenumber ×1
lua ×1
numbers ×1
performance ×1
php ×1
precision ×1
sse ×1