FelixGeoff
2017-05-12 01:29
采纳率: 50%
浏览 2.1k

关于水仙花数的求解算法以及最大的水仙花数

最近在做算法题,关于水仙花数的,就考虑水仙花数是不是有限个,上网查了相关的信息,得知理论上最大为60位,然后就找了相关的算法,发现网上给的暴力计算的算法计算到一定的程度计算会非常慢,而计算出所有的水仙花数几乎是不可能的。
那么问题来了,既然计算机结果是这样,那么最大的水仙花数是怎么计算出来的呢,是用其他语言计算的吗,难道是java的性能不好吗,总不会是手算出来的吧,还是有更好的算法,感觉用暴力计算的方法根本不可能计算出来,就算计算机技术再发展几十年都不可能。求解释。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • yanmengdewo 2017-05-12 01:38

    个人觉得肯定是其他语言算的啊,汇编语言很快的,java太慢了

    评论
    解决 无用
    打赏 举报
  • T_world 2017-05-12 02:00

    我也觉得是其他语言算的,java这种语言本来擅长的事情就不是计算,用它来算这种题目是一种勉强,真正进行高精度科学计算的都是使用特定的语言,比如MATLAB就很强,它可以算到小数点后100多位(个人使用经验,应该还没有达到上限),比如Fortran是专门用来科学计算的,还有汇编,是最靠近机器语言的,越底层的语言越快

    评论
    解决 无用
    打赏 举报
  • fortranboy_sh 2021-09-09 17:57

    理论上,水仙花最大不超过60位。实际计算结果,最大是39位。
    用fortran语言,采用递归枚举数字组合的算法,搜索完60位,大约需要40分钟。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题