Math 大于非常大数字的最小整数

Math 大于非常大数字的最小整数,math,matlab,numbers,integer,Math,Matlab,Numbers,Integer,我试图找到大于一个非常大的数字(例如,exp(5000000))的最小整数。我该怎么做呢?如果不是以编程方式(因为这在MATLAB或我的计算器中计算为无穷大或溢出),那么数学上呢?(已经尝试过exp(floor(log)(exp(5000*1024))),但这只会给出无穷大)。您需要使用一个处理大数字的库 我的谷歌业力似乎指向,就像克拉斯·赛斯那样。如果输入整数iN,则最小的较大整数为N+1。要使用示例C计算此值,可以编写如下函数 unsigned long smallestLargerInte

我试图找到大于一个非常大的数字(例如,exp(5000000))的最小整数。我该怎么做呢?如果不是以编程方式(因为这在MATLAB或我的计算器中计算为无穷大或溢出),那么数学上呢?(已经尝试过exp(floor(log)(exp(5000*1024))),但这只会给出无穷大)。

您需要使用一个处理大数字的库


我的谷歌业力似乎指向,就像克拉斯·赛斯那样。如果输入整数iN,则最小的较大整数为N+1。要使用示例C计算此值,可以编写如下函数

unsigned long smallestLargerInteger(unsigned long startNum) {
  return startNum +1;
}
为了确保不会溢出long,您可以使用以下内容

#define __HALF_MAX_SIGNED(type) ((type)1 << (sizeof(type)*8-2))
#define __MAX_SIGNED(type) (__HALF_MAX_SIGNED(type) - 1 + __HALF_MAX_SIGNED(type))
#define __MIN_SIGNED(type) (-1 - __MAX_SIGNED(type))

#define __MIN(type) ((type)-1 < 1?__MIN_SIGNED(type):(type)0)
#define __MAX(type) ((type)~__MIN(type))

unsigned long smallestLargerInteger(unsigned long startNum) {
  if(__MAX(long) == startNum) {
    // handle overflow error messaging here
  }

  return startNum +1;
}

\define\u HALF\u MAX\u SIGNED(type)((type)1您需要提供可变精度算术的东西,例如,和。

如果您想要计算一个大数字的所有数字,最简单的解决方案可能是使用Maple或Mathematica。如果您只需要简单和免费的东西,您可以使用

例如:


你在数学上找到它的确切含义是什么?例如,你是在寻找一个给出第n个数字的函数吗?为了让你知道这个数字有多大,我使用符号工具箱在MATLAB中尝试了以下方法:
ceil(sym('exp(5000000)))
结果是巨大的:是的。它大约有217万位。巨大。我不明白为什么数字的大小会成为一个问题。即使用一个整字节来写一个数字,包含这个数字的文件仍然不会大于3Mb。但是N是整数,而不是数字。exp(5000000)不一定是整数。@JustinM你是对的。我删除了不正确的语句。