标签: infinity

Python中的无限整数

Python 3有float('inf'),Decimal('Infinity')但没有int('inf').那么,为什么语言中缺少表示无限整数集的数字?是int('inf')不合理的?

python math infinity python-3.x

53
推荐指数
3
解决办法
7万
查看次数

如何使整数大于任何其他整数?

注意:虽然接受的答案达到了我想要的结果,并且@ecatmur答案提供了更全面的选项,但我觉得强调我的用例首先是一个坏主意是非常重要的.这在@Jason Orendorff的答案中得到了很好的解释.

注意:这个问题不是关于的问题sys.maxint的重复.它与此无关sys.maxint; 即使在sys.maxint可用的python 2中,它也不代表最大整数(参见接受的答案).

我需要创建一个比任何其他整数都大的整数,这意味着一个int对象True在与任何其他int对象相比时返回>.用例:库函数需要一个整数,强制某种行为的唯一简单方法是传递一个非常大的整数.

在python 2中,我可以使用sys.maxint(编辑:我错了).在python 3中,math.inf是最接近的等价物,但我无法将其转换为int.

python infinity python-3.x

50
推荐指数
3
解决办法
7370
查看次数

在JavaScript中,为什么零除以零返回NaN,但任何其他除以零返回无穷大?

在我看来,代码

console.log(1 / 0)
Run Code Online (Sandbox Code Playgroud)

应该返回NaN,但它返回Infinity.但是这段代码:

console.log(0 / 0)
Run Code Online (Sandbox Code Playgroud)

确实回来了NaN.有人可以帮我理解这个功能的原因吗?它不仅似乎是不一致的,这也似乎是错误的,在的情况下x / 0,其中x !== 0

javascript math floating-point nan infinity

46
推荐指数
3
解决办法
2万
查看次数

如何在ANSI C中生成NaN,-Infinity和+ Infinity?

我使用ANSI C89(不是C++),我想生成NaN,-Infinity和+ Infinity.

有没有标准方式(例如标准宏)?或者是否有任何平台和编译器独立的方式来生成这些数字?

float f = 0.0 / 0.0; // Is f ALWAYS in any platform is NaN?
Run Code Online (Sandbox Code Playgroud)

c nan infinity

45
推荐指数
2
解决办法
3万
查看次数

如何将NaN和Infinity的浮点数或双精度存储在内存中?

据我所知,java将存储器作为32位整数存储在内存中,具有以下属性:

  • 第一位用于确定符号
  • 接下来的8位代表指数
  • 最后的23位用于存储分数

这样就不会为三种特殊情况留下任何备用位:

  • 为NaN
  • 正无穷大
  • 负无穷大

我猜可以用负0来存储其中一个.

这些实际上如何在记忆中表现出来?

java nan infinity

39
推荐指数
3
解决办法
7108
查看次数

将-inf替换为零值

我有一个数组:

x =  numpy.array([-inf, -inf, 37.49668579])
Run Code Online (Sandbox Code Playgroud)

有没有办法将-inf值更改为0?

python arrays numpy infinity

36
推荐指数
3
解决办法
5万
查看次数

Java中的INFINITY常量是什么?

我刚刚遇到了原始类型包装类中的常量,如Double.POSITIVE_INFINITYDouble.NEGATIVE_INFINITY.在API中,它将第一个定义为:

持有double类型的正无穷大的常量.它等于Double.longBitsToDouble(0x7ff0000000000000L)返回的值.

其他人也有这些相同的定义.

我遇到的问题是了解这些常数究竟是什么.它们实际上不能代表正/负无穷大,因为系统本质上是有限的.它是Java创建者认为会定义无限概念的一些任意位设置吗?或者这些确实具有某种特殊价值?如果它只是一个解释为a的任意字符串double,那么是否有一些正常的数字,当被解释为double将返回POSITIVE_INFINITY而不是实际预期的任何值?

请原谅我,如果Double.longBitsToDouble(0x7ff0000000000000L)API 的部分答案是明显的.说实话,这个描述对我来说非常神秘,我不会假装理解十六进制值实际上意味着什么或代表什么.

java bits constants infinity

33
推荐指数
3
解决办法
4万
查看次数

编程语言在什么情况下真正使用Infinity值?

所以在Ruby中有一个指定无穷大的技巧:

1.0/0
=> Infinity
Run Code Online (Sandbox Code Playgroud)

我相信Python你可以做这样的事情

float('inf')
Run Code Online (Sandbox Code Playgroud)

这些仅仅是一些例子,我确信大多数语言在某种程度上都具有无限性.你什么时候才能在现实世界中使用这个结构?为什么在一个范围内使用它比仅使用布尔表达式更好?例如

(0..1.0/0).include?(number) == (number >= 0) # True for all values of number
=> true
Run Code Online (Sandbox Code Playgroud)

总而言之,我正在寻找的是使用Infinity的现实世界的理由.

编辑:我正在寻找真实世界的代码.当人们真正使用它时,这就是你可以"使用它"的全部和好处.

ruby python language-agnostic idioms infinity

28
推荐指数
9
解决办法
3万
查看次数

如何在C++中检查无限和不确定的值?

在我的程序中,当值被除以零时通常会出现无穷大.当我将零除零时,我得到了不确定性.如何在C++中检查无限和不确定的值?

在C++中,无穷大由1.#INF表示.Indeterminate由-1表示.#IND.问题是如何测试变量是无限的还是不确定的.检查无穷大是相对简单的:在特定的C++中找到无限定义.对于我的情况(VS2003),它是std :: numeric_limits :: infinity().您必须包含"限制"才能使用它.您可以将此无限值分配给变量,并将其与某个值进行比较,以检查该值是否为无限.

Indeterminate有点棘手,因为您无法将不确定值与其他值进行比较.任何比较都返回false.您可以使用此属性通过将其与自身进行比较来检测不确定值.假设您有一个名为aVal的双变量.在正常情况下,aVal!= aVal返回false.但是如果值是不确定的,则aIndVal!= aIndVal返回true.对于无限值,这种奇怪的情况不存在,即aInfVal!= aInfVal总是返回false.

以下是两个可用于检查不确定和无限值的函数:

#include "limits.h"
#include "math.h"

bool isIndeterminate(const double pV)
{
    return (pV != pV);
} 

bool isInfinite(const double pV)
{
    return (fabs(pV) == std::numeric_limits::infinity())
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法进行这些检查,我错过了什么吗?

c++ floating-point nan infinity visual-c++

28
推荐指数
2
解决办法
4万
查看次数

在Haskell中,是否存在无穷大:: Num a => a?

我正在尝试实现一个数据结构,如果我使用无穷大进行数字比较,那就简单了.请注意,这不是maxBound/minBound,因为值可以<= maxbound,但所有值都是<infinity.

没希望?

haskell infinity

26
推荐指数
5
解决办法
2万
查看次数