- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我制作了一个 Python 脚本来计算阶乘并用 1000 测试了它!但是当我放1000!进入我的 mac 的内置计算器以检查它返回“不是数字”的计算。我做了一些测试,发现内置计算器最多只能计算 101 个阶乘。这是为什么?
最佳答案
1000对应的数字!比您的计算器用来存储数字的要大。该数字实际上有 2568 位数字,即:
import math
print(len(str(math.factorial(1000))))
# 2568
您的计算器使用预定量的内存来存储单个数字。有几种不同的方法可以将数字存储在给定的位数中。流行的此类方法是 float
和 int
.假设您的计算器使用 64 位,这些将变为 float64
或 int64
,最多可以容纳 2 ** 1023 ~ 9e+307
。或分别为 2 ** 63 ~ 9223372036854775808
。
相比之下,Python 整数有 arbitrary precision ,这意味着任何任意大的数字(只要您的系统中有可用内存)都将在 Python 中准确表示。
这种选择的代价最终是速度和内存消耗:
在某些应用中,这些缺点大多无关紧要,而在其他应用(例如数值分析)中,它们非常重要。但不要担心,Python 提供了许多工具和库来在需要时使用固定精度数字,其中最突出的可能是 NumPy。 .
关于python - 为什么我的计算机内置计算器最多只能计算 101 个阶乘,但我的 python 阶乘脚本可以计算得更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59383266/
有一条(相对)众所周知的 Perl 公理:“只有 Perl 可以解析 Perl”。我想知道 Perl 6 是否仍然如此? 扩大讨论...考虑到 PyPy 最近的更新,我想到了这个问题。 Perl 独特
这是设置。在上一个问题中,我发现我可以通过子组件中的状态传递对象属性,然后使用 componentDidUpdate 获取该对象属性。在这种情况下,状态和属性都称为到达。 这是基本代码... expo
我运行的是 10.5.2 社区版。我已经标记了 源/主要/资源 作为源目录。我可以右键单击并“编译”某些文件,据我所知,这意味着 IDE 将文件复制到与发送类文件的“com.mydomain.pack
我是一名优秀的程序员,十分优秀!