float python_Python中float('INF')的使用

最近在看动态规划的时候遇到了res = float('INF'),不知道是什么意思,为什么要这么使用,经过查阅,现将用法记录如下。

def coinChange(coins: List[int], amount: int):

def dp(n):

# base case

if n == 0: return 0

if n < 0: return -1

# 求最小值,所以初始化为正无穷

res = float('INF')

for coin in coins:

subproblem = dp(n - coin)

# 子问题无解,跳过

if subproblem == -1: continue

res = min(res, 1 + subproblem)

return res if res != float('INF') else -1

return dp(amount)

如上面的例子中使用到的:

float("INF")表示为正无穷;

float("-INF")表示负无穷

用法:

用INF做加法、乘法等算数运算仍然会的到inf:

In [1]: 1 + float('INF')

Out[1]: inf

In [2]: 88 * float('INF')

Out[2]: inf

注意:这里使用INF * 0会的到not-a-number(nan)

# 正无穷 * 0 得到nan

In [3]: 0 * float('INF')

Out[3]: nan

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

In [4]: float('INF') / float('INF')

Out[4]: nan

In [5]: 2020 / float('INF')

Out[5]: 0.0

In [6]: 12138 / float('INF')

Out[6]: 0.0

任何其他的数值除以 INF 都会得到 INF, 因为INF表示正无穷

In [7]: float('INF') / 1203434

Out[7]: inf

如果 INF 涉及到 < 和 > 不等式的问题:

记住所有数都比 -inf 大,所有数都比 +inf 小就可以了。

In [8]: 12138 < float('INF')

Out[8]: True

In [9]: 12138 < float('-INF')

Out[9]: False

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值