首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在java中找到“n”升为“n”

如何在java中找到“n”升为“n”
EN

Stack Overflow用户
提问于 2013-05-14 19:46:54
回答 1查看 1.2K关注 0票数 3

我试图找到一种在java中计算N^N的有效方法。由于大N的结果非常大,所以我使用BigInteger作为结果数据类型,N是整数。如果N变大,比如N=10000000,那么需要更多的时间来计算结果。有没有有效的方法能在一秒钟内计算出。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-14 20:29:49

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

实现这一点的方式取决于您需要做什么。如果您不需要程序内部的N^N,那么只需忘记它,并且在程序输出后在纸面上完成它。当您处理这么大的数字时,它的日志/数量级/它所拥有的数字数(所有这些都是同义词)是最基本的信息。如果您的程序输出x,您将报告答案是围绕e^x,这将是您所能说的全部。

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16551640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档