开发者社区> 问答> 正文

为什么我的计算器只能计算101的阶乘,而我的python的阶乘脚本可以更大?

我编写了一个Python脚本来计算阶乘,并用1000来测试它!但是当我放1000的时候!进入我的mac内置计算器,检查计算,它返回“不是一个数字”。我做了一些测试,发现内置的计算器只能计算到101的阶乘。这是为什么呢? 问题来源StackOverflow 地址:/questions/59383266/why-is-it-that-my-computers-built-in-calculator-can-only-calculate-up-to-101-fac

展开
收起
kun坤 2019-12-27 10:30:49 665 0
1 条回答
写回答
取消 提交回答
  • 数字对应1000!比你的计算器用来存储数字的要大。这个数字实际上有2568个数字,即:

    import math
    
    
    print(len(str(math.factorial(1000))))
    # 2568
    

    您的计算器使用预先确定的内存量来存储单个数字。在给定的比特数中存储数字有几种不同的方法。流行的方法是float和int。 假设您的计算器使用64位,它们将变成float64或int64,分别可以容纳2 ** 1023 ~ 9e+307或2 ** 63 ~ 9223372036854775808。 相比之下,Python整数具有任意精度,这意味着任何任意大的数字(只要系统中有可用内存)都将在Python中精确地表示出来。 这种选择的代价最终是速度和内存消耗: 在一些应用中,这些缺点通常是不相关的,而在另一些应用中(例如,数值分析),这些缺点是非常重要的。 但是不要担心,Python提供了大量的工具和库来在需要时使用固定精度的数字,其中最突出的可能是NumPy。

    2019-12-27 10:30:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
From Python Scikit-Learn to Sc 立即下载
Data Pre-Processing in Python: 立即下载
双剑合璧-Python和大数据计算平台的结合 立即下载