java - 如何在 Java 中找到 'n' 提升到 'n'

标签 java

我正在尝试找到一种在 Java 中计算 N^N 的有效方法。由于对于大 N,结果会非常大,因此我使用 BigInteger 作为我的结果数据类型,并且 N 是整数。如果 N 变大,比如 N=10000000,那么计算结果将花费更多时间。有什么有效的方法可以在一秒钟内计算出来。

最佳答案

在您的程序中处理数字的日志,即 N ln(N)。随着 N 的增长,N ln(N) 相对于 N^N 的大小越来越快地缩小。

您实现它的方式取决于您需要做什么。如果您不需要程序中的 N^N,那么只需忘记它并在程序输出后在纸上完成。当你处理这么大的数字时,它的对数/数量级/它拥有的位数(所有这些都是同义词)是最重要的信息。如果您的程序输出 x,您会报告答案在 e^x 左右,这就是您能说的所有内容。

如果您的程序中确实需要 N^N,那么您仍然应该计算 x = ln(N^N) = N ln(N)。但是随后您将不得不想出一些创造性的方法来从 x 到您的程序实际可以使用的某个值。

关于java - 如何在 Java 中找到 'n' 提升到 'n',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16551640/

相关文章:

java - 如何在 (mm :ss) format using editText?

java - 如何使用android微调轮获取选定的文本?

java - JFileChooser网络显示

java - 相当于 php exit() 或 die() 的 Tomcat Servlet 代码

java - 提升跟踪登录用户

java - 找不到符号 - 构造函数(java)

java - 日期加一

java - 实现通知线程的下一个按钮

java - 用于 ShardedJedisPipeline 的 Redis Sentinel 和 ShardedJedis

java.util.SimpleTimezone 什么是 startMode 和 endMode?