【问题标题】:Is it possible to get a natural log of a big-integer instance?是否可以获得大整数实例的自然对数?
【发布时间】:2015-04-02 17:30:17
【问题描述】:

我正在为 JavaScript 使用 big-integer

var bigInt = require('big-integer')

我有一个 bigInt 实例:

var ratherLargeNumber = bigInt(2).pow(2048)

我可以得到它的(自然)日志吗?

【问题讨论】:

标签: javascript node.js math biginteger


【解决方案1】:

假设你有一个大整数x = 5384932048329483948394829348923849

如果将 x 转换为十进制字符串并计算位数,则可以将 x 表示为 0.5384932048329483948394829348923849 × 1034

你想取 x 的自然对数请注意以下事项

loge(x) = 34 loge(10) + loge(0.5384932048329483948394829348923849)

您现在可以使用常规 Number 计算和常规 Math.log 来执行计算。

var bigInt = require('big-integer');
var integer = bigInt('5384932048329483948394829348923849').toString();
var ln_x = Math.log(10 + integer);

【讨论】:

  • @mikemaccana 请注意,在实际的库代码中可能有更有效的方法来执行此操作。例如,计算可以在 BigInteger.js 内部使用的任何基数中完成,而不是在基数 10 中。在快速检查库代码后,它看起来像是在存储以 1000 万为基数的数字。使用该基础,此方法仍然可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-19
  • 1970-01-01
  • 2020-09-10
  • 1970-01-01
相关资源
最近更新 更多