• 正负无穷float('inf')的一些用法


    Python中可以用如下方式表示正负无穷:

    float("inf"), float("-inf")

    利用 inf 做简单加、乘算术运算仍会得到 inf

    >>> 1 + float('inf')
    inf
    >>> 2 * float('inf')
    inf

    但是利用 inf 乘以0会得到 not-a-number(NaN):

    >>> 0 * float("inf")
    nan

    除了inf外的其他数除以inf,会得到0

    >>> 889 / float('inf')
    0.0
    >>> float('inf')/float('inf')
    nan

    通常的运算是不会得到 inf值的 

     
    >>> 2.0**2
    4.0
    >>> _**2
    16.0
    >>> _**2
    256.0
    >>> _**2
    65536.0
    >>> _**2
    4294967296.0
    >>> _**2
    1.8446744073709552e+19
    >>> _**2
    3.4028236692093846e+38
    >>> _**2
    1.157920892373162e+77
    >>> _**2
    1.3407807929942597e+154
    >>> _**2
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
    OverflowError: (34, 'Numerical result out of range')
     

    inf的运算规则遵从 IEEE-754 standard

    不等式:

    当涉及 > 和 < 运算时,

    • 所有数都比-inf大
    • 所有数都比+inf小

     等式:

    +inf 和 +inf相等

    -inf 和 -inf相等

    例子

    给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

    示例:

    输入: [-2,1,-3,4,-1,2,1,-5,4],
    输出: 6
    解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。
    def maxsum(nums):
        max_pre = -float('inf')
        max_cur = -float('inf')
        for i in nums:
            max_cur = max(max_cur + i, i)
            max_pre = max(max_pre, max_cur)
        return max_pre


  • 相关阅读:
    Linux在高铁项目的部署环境
    【牛刀小试2】password保
    fcitx的安装_配置
    Mingw:在Linux系统下编译Windows的程序
    linux安装qwt插件linux
    qt超强绘图控件qwt
    WIN7 下 Qt Creator 安装 QWT
    QWT6.0.1+win7下安装说明
    qwt 介绍
    Linux中的svn客户端RabbitVCS-2
  • 原文地址:https://www.cnblogs.com/zxmbky/p/9306246.html
Copyright © 2020-2023  润新知