• 关于无穷大量的选择


        在解题时候,通常有遇到设置为无穷大的情况。这时候通常用0x7fffffff来设置,他是计算机32位整数最大数,相当于INT_MAX.但是在很多时候这样设置并不会是最佳的,还可能导致bug,这是由于我们有的时候希望无穷大+无穷大=无穷大,比如在prim算法或者Dijstra算法中对边的松弛操作,这个时候INT_MAX随便加上一个数就会溢出,从而导致结果错误。

        事实上另外一个数字0x3f3f3f3f的十进制是1061109567,这与0x7fffffff是同一个数量级的。我们用0x3f3f3f来代替0x7fffffff可以满足无穷大加无穷大依然是无穷大的条件,这样可以避免灾难性的错误。另外0x3f3f3f还可以使用memset函数批量赋值,例如要将数组dis[]设置为无穷大:              

    memset(dis,0x3f,sizeof(dis));
    

    如果数组dis是long long 型,则上面语句将dis设置为4557430888798830399,若dis为int型 ,则上面语句将dis设置为1061109567无论在long long还是int,两个无穷的和都不会爆。上面的0x3f是一个字节0x3f3f3f3f一共有四个这样的字节。一般情况下,0x3f3f3f3f是一个设置无穷不错选择。             

  • 相关阅读:
    闭包
    函数进阶2
    文档翻译 Python 2.7.x和Python 3.x之间的主要区别(包括示例)
    Deep Learn 关于单维度模型的多维输出
    Deep Learning 名词解释
    Deep Learning 激活函数
    Deep Learning 归一化、标准化
    Deep Learning 梯度下降
    Deep Learning 循环神经网络
    Deep Learning BP反向传播
  • 原文地址:https://www.cnblogs.com/td15980891505/p/5431898.html
Copyright © 2020-2023  润新知