标签: largenumber

在Python中处理非常大的数字

我一直在考虑用Python进行快速扑克手牌评估.在我看来,加速这个过程的一种方法是将所有卡面和套装表示为素数,并将它们相乘以代表手.白衣:

class PokerCard:
    faces = '23456789TJQKA'
    suits = 'cdhs'
    facePrimes = [11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 53, 59, 61]
    suitPrimes = [2, 3, 5, 7]
Run Code Online (Sandbox Code Playgroud)

    def HashVal(self):
      return PokerCard.facePrimes[self.cardFace] * PokerCard.suitPrimes[self.cardSuit]
Run Code Online (Sandbox Code Playgroud)

这会给每只手一个数值,通过模数可以告诉我手中有多少国王或多少颗心.例如,任何有五个或更多球杆的手将平均分为2 ^ 5; 任何有四个国王的手都会平均分为59 ^ 4等.

问题在于,像AcAdAhAsKdKhKs这样的七张牌的手的哈希值大约为62.7千万亿,内部代表需要大于32位.有没有办法在Python中存储这么大的数字,这将允许我对它进行算术运算?

python optimization largenumber

120
推荐指数
5
解决办法
22万
查看次数

如何在C++中实现大型int

我想在C++中实现一个大的int类作为编程练习 - 一个可以处理大于long int的数字的类.我知道已经有几个开源实现,但我想写自己的.我试图了解正确的方法是什么.

我知道一般策略是将数字作为字符串,然后将其分解为较小的数字(例如,单个数字),并将它们放在一个数组中.此时,实现各种比较运算符应该相对简单.我主要担心的是如何实现添加和乘法等功能.

我正在寻找一种通用的方法和建议,而不是实际的工作代码.

c++ largenumber biginteger bignum

78
推荐指数
6
解决办法
9万
查看次数

C#中的大整数

目前我正在借用java.math.BigInteger这里描述的J#库.从来没有使用过库来处理大整数,这看起来很慢,大约慢了10倍,即使对于ulong长度数也是如此.有没有人有更好的(最好是免费的)库,或者这种性能水平是否正常?

c# j# largenumber biginteger

64
推荐指数
3
解决办法
6万
查看次数

如何总结大数?

我试图来计算1 + 1 * 2 + 1 * 2 * 3 + 1 * 2 * 3 * 4 + ... + 1 * 2 * ... * n,其中n是用户输入.它适用于中值n高达12.我要计算总和n = 13,n = 14n = 15.我如何在C89中做到这一点?据我所知,我unsigned long long int只能在C99或C11中使用.

  1. 输入13,结果2455009817,预计6749977113
  2. 输入14,结果3733955097,预计93928268313
  3. 输入15,结果1443297817,预计1401602636313

我的代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    unsigned long int n;
    unsigned long int P = 1;
    int i;
    unsigned long int sum = …
Run Code Online (Sandbox Code Playgroud)

c largenumber c89

32
推荐指数
2
解决办法
4671
查看次数

BigInteger相当于Swift?

在Swift中是否有与Java的BigInteger类相同的东西?我想在Swift中进行大型计算,正整数大于UInt64的最大数.处理这些数字的最佳方法是什么?

int largenumber biginteger swift

31
推荐指数
6
解决办法
2万
查看次数

在.NET中使用令人难以置信的大数字

我正在尝试解决projecteuler.net上的问题,但我一直遇到一些问题.

第一个是存储大量元素的问题List<t>.在列表中存储大量数据时,我一直收到OutOfMemoryException.

现在我承认我可能没有以最好的方式做这些事情但是,有没有办法定义应用程序可以消耗多少内存?

当我满足100,000,000个元素时,它通常会崩溃:S

其次,一些问题需要增加大量数字.我使用ulong数据类型,我认为这个数字会变得非常大,但我仍然设法绕过最大的受支持的int并进入负数.

你有任何使用难以置信的大数字的技巧吗?

.net c# largenumber biginteger

30
推荐指数
3
解决办法
5万
查看次数

在C++中处理大数字?

在C++中处理大型数字输入的最佳方法是什么(例如10^100)?

对于算法,我通常切换到ruby,有时我会使用字符串.

还有其他好方法吗?

c++ largenumber biginteger

19
推荐指数
5
解决办法
5万
查看次数

如何编写解决方案以处理大量数据?

我正在做一些Project Euler问题,而且大多数时候,计算涉及超出int,float,double等的大量数字.

首先,我知道我应该寻找更有效的计算方法,以避免出现大量问题.我听说过Bignum图书馆.

但是,对于学术界的兴趣,我想知道如何编写我自己的解决方案来解决这个问题.

任何专家都可以帮帮我吗?(我的语言是C)

c types largenumber bignum

13
推荐指数
3
解决办法
1万
查看次数

划分非常大的数字的算法

我需要编写一个算法(我不能使用任何第三方库,因为这是一个赋值)来划分(整数除法,浮动部分并不重要)非常大的数字,如100 - 1000位数.我找到了http://en.wikipedia.org/wiki/Fourier_division算法,但我不知道这是不是正确的方法.你有什么建议吗?

1) check divisior < dividend, otherwise it's zero (because it will be an int division)
2) start from the left
3) get equal portion of digits from the dividend
4) if it's divisor portion is still bigger, increment digits of dividend portion by 1
5) multiply divisor by 1-9 through the loop
6) when it exceeds the dividend portion, previous multiplier is the answer
7) repeat steps 3 to 5 until reaching to the end
Run Code Online (Sandbox Code Playgroud)

c++ algorithm math largenumber

12
推荐指数
3
解决办法
2万
查看次数

如何创建128位整数文字

我有一个格式的整数文字0x75f17d6b3588f843b13dea7c9c324e51.有没有办法避免编译器语法错误"整数文字太大而无法在任何整数类型中表示"?

因为我知道我可以使用这些类型(我正在使用uint128_tEOS库,如果我手动插入它,它可以工作).

有没有办法在运行时以某种方式将此字符串直接解析为完全相同的整数?

c++ largenumber

11
推荐指数
2
解决办法
919
查看次数

标签 统计

largenumber ×10

biginteger ×5

c++ ×4

bignum ×2

c ×2

c# ×2

.net ×1

algorithm ×1

c89 ×1

int ×1

j# ×1

math ×1

optimization ×1

python ×1

swift ×1

types ×1