Python 试图找到最小的数字

Python 试图找到最小的数字,python,numbers,Python,Numbers,在我的程序中,我试图找到python能给我的最小值。当我不断地把一个数字除以2时,我得到了5x10^-324 5e-324。我想我可以用python中可以使用的最大数来除以这个数。我试图通过这样做在python中获得最大的数量: z = 1 while True: try: z = z+1 except OverflowError: z = z-1 break 这是我的全部代码: f

在我的程序中,我试图找到python能给我的最小值。当我不断地把一个数字除以2时,我得到了5x10^-324 5e-324。我想我可以用python中可以使用的最大数来除以这个数。我试图通过这样做在python中获得最大的数量:

z = 1
    while True:
        try:
            z = z+1
        except OverflowError:
            z = z-1
            break
这是我的全部代码:

from os import system
x = 76556758478567587
while True:
    x = x/2
    if x/2 == 0.0:
        break

print("Smallest number I can compute:", x)
print()
z = 1
while True:
    try:
        z = z+1
    except OverflowError:
        z = z-1
        break

print(str(x) + " divided by " + str(z) + " is...")
z = x/z
print(z)
system("pause >nul")
每次我运行它,它什么也不做。我突然意识到它仍在试图解决这个问题,所以我打开任务管理器,Python就像一群狼吃掉了一头死牛一样吃掉了我的CPU

我知道python中的最小数字是负数,但我希望得到零以上的最小数字。

您可以使用sys.float\u info获得最大/最小可表示的有限浮点,如下所示:

>>> import sys
>>> sys.float_info.min
2.2250738585072014e-308
>>> sys.float_info.max
1.7976931348623157e+308
Python使用双精度浮点,它可以保存从10到-308到10到308次方的值。下面是python提示符下的实验:

# for maximum
>>> 1e308
1e+308
>>> 1e+309
inf   <-- Infinite
您可以将非规范化最小值设置为sys.float_info.min*sys.float_info.epsilon,即5e-324

根据文件:

sys.float_info.max是可表示的最大有限浮点

sys.float_info.min是最小正标准化浮点

要获取更多信息,请检查:

sys.float_info是一个结构序列,包含有关浮点类型的信息。它包含有关精度和内部表示的低级信息。这些值对应于“C”编程语言的标准头文件float.h中定义的各种浮点常量;有关详细信息,请参见1999年ISO/IEC C标准[C99]第5.2.4.2.2节“浮动类型的特征”

您可以使用sys.float_info获得最大/最小可表示有限浮点,如下所示:

>>> import sys
>>> sys.float_info.min
2.2250738585072014e-308
>>> sys.float_info.max
1.7976931348623157e+308
Python使用双精度浮点,它可以保存从10到-308到10到308次方的值。下面是python提示符下的实验:

# for maximum
>>> 1e308
1e+308
>>> 1e+309
inf   <-- Infinite
您可以将非规范化最小值设置为sys.float_info.min*sys.float_info.epsilon,即5e-324

根据文件:

sys.float_info.max是可表示的最大有限浮点

sys.float_info.min是最小正标准化浮点

要获取更多信息,请检查:

sys.float_info是一个结构序列,包含有关浮点类型的信息。它包含有关精度和内部表示的低级信息。这些值对应于“C”编程语言的标准头文件float.h中定义的各种浮点常量;有关详细信息,请参见1999年ISO/IEC C标准[C99]第5.2.4.2.2节“浮动类型的特征”


你显然缺少的关键词是。如果您搜索Python epsilon值,那么它将返回一个指向谷歌搜索结果顶部附近的链接


显然,如果你理解这个术语是如何与这个概念联系在一起的,这会有所帮助。

你显然缺少的关键词是。如果您搜索Python epsilon值,那么它将返回一个指向谷歌搜索结果顶部附近的链接


显然,如果您理解这个术语是如何与这个概念联系在一起的,它会有所帮助。

Python中可表示的最小浮点数是5e-324,或2.0**-1075


另外两个答案都给了你找到这个数字所需的一半。它可以通过将sys.float_info.min2.2250738585072014e-308乘以sys.float_info.epsilon 2.220446049250313e-16得到,这是最小的标准化浮点数,也是在仍然获得不同值的情况下可以修改数字的最小比例。

Python中可表示的最小浮点数是5e-324,或2.0**-1075


另外两个答案都给了你找到这个数字所需的一半。它可以通过乘以sys.float_info.min 2.2250738585072014e-308(最小的标准化浮点数)和sys.float_info.epsilon 2.220446049250313e-16(在仍然获得不同值的情况下可以修改数字的最小比例)来找到。

首先找到最大的整数,然后取倒数;第一个算法是logN复数,第二个算法是N复数。你应该乘2直到你达到溢出,然后继续往下走。但是我觉得这个练习毫无意义。什么?Python中没有最大值或最小值。Python会自动将int转换为long,实际上,long的大小是无限的,由操作系统分配。有一个最大值'int',但它是相当没有意义的。如果不满意,请检查或搜索大数字库以供参考。首先找到最大整数,然后取倒数;第一个算法是logN复数,第二个算法是N复数。你应该乘2直到你达到溢出,然后继续往下走。但是我觉得这个练习毫无意义。什么?Python中没有最大值或最小值。Python会自动将int转换为long,实际上,long的大小是无限的,由操作系统分配。我在那里
这是一个最大值,但它是相当没有意义的。如果这不令人满意,请查看或搜索大数字库以供参考。有趣的是,您似乎仍然可以分割sys.float\u info.min。。。我不知道为什么。也许一位IEEE专家能给我们一些启示?当OP达到5e-324时,你怎么认为2.2250738585072014e-308是最小的可用浮动?试试:sys.float\u info.min*sys.float\u info。epsilon@mgilson这不是关于规范化和非规范化浮动吗?2.2e-308可能被划分为0.000000002e-308,等等?@mgilson,我甚至不知道术语,显然它们被称为。有趣的是,似乎你仍然可以划分sys.float\u info.min。。。我不知道为什么。也许一位IEEE专家能给我们一些启示?当OP达到5e-324时,你怎么认为2.2250738585072014e-308是最小的可用浮动?试试:sys.float\u info.min*sys.float\u info。epsilon@mgilson这不是关于规范化和非规范化浮动吗?2.2e-308可能被划分为0.000000002e-308,等等?@mgilson,我甚至不知道术语,显然它们被称为。