标签: infinity

在Perl模块中检查无穷大的最佳方法是什么?

在我的一个模块中,我必须处理无限的概念.到目前为止,我一直在使用9**9**9正无穷大,这似乎运作良好,速度快,似乎是perl的内部用作无限.

但是,如果我的模块的用户决定使用其中一个大数字模块(例如use bigint;),然后他们使用infMath::BigInt->binf()表示无穷大,事情会有点冒险.

在某些地方它似乎工作正常,但在其他地方,比较应该是真的或应该是错误的最终错误的方式导致难以追踪错误.

我想支持无限的其他各种概念,它们可以使用普通的perl数和任意精度数.

但我也对性能表示担忧,因为我对无穷大的一些比较发生在紧密的内环中.显然,inffrom Math::BigInt会慢于9**9**9(由于在每次访问时调用绑定或重载方法).过去有没有人处理过这个问题?如果是这样,你的解决方案是什么?

我已经考虑过将自己的常量用于无穷大,定义如下:

use constant INF => if_any_bignum_modules_loaded() 
                    ? Math::BigInt->binf 
                    : 9**9**9;
Run Code Online (Sandbox Code Playgroud)

然后向我的模块添加警告,首先应该加载任何bignum模块.这听起来合情合理吗?是否有可靠的实施if_any_bignum...,或者我应该自己推出?

perl module biginteger bignum infinity

13
推荐指数
1
解决办法
659
查看次数

O符号,O(∞)= O(1)?

快速思考; 有人认为O(∞)实际上是O(1)吗?

  • 我的意思是它不依赖于输入大小?
  • 所以在某种程度上它是恒定的,即使它是无限的.

或者是表达O(∞)的唯一"正确"方式?

big-o infinity

12
推荐指数
2
解决办法
4879
查看次数

有没有办法以编程方式将相机焦点从iOS设备设置为无限远?

我正在创建一个应用程序来锁定相机焦点以进行视频录制.我想在没有用户手动调整焦点的情况下将焦点锁定到无限远.这可能吗?谢谢!

camera focus infinity ios

12
推荐指数
2
解决办法
9665
查看次数

如何在BigDecimal(Java)中存储无穷大?

我在返回BigDecimal值的方法中编写算法,但现在计算的结果将是+或 - 无穷大.
而不是程序崩溃我想捕获异常并返回无穷大作为一个值,如果该方法返回双精度的方式.

例如Double.POSITIVE_INFINITY;

那么如何在BigDecimal中存储无穷大?还是有另一种方法吗?

public static BigDecimal myalgorithm(){

//code to store infinity in a BigDecimal
//return the BigDecimal holding infinity 

}
Run Code Online (Sandbox Code Playgroud)

java algorithm exception bigdecimal infinity

12
推荐指数
1
解决办法
6093
查看次数

多级无穷大

一些程序员认为理论CS课程(特别是我的学生)并没有多大意义.这是我发现非常相关的东西.让我为那些以前没见过的人制作碎片......

A)编程问题可以重写为有关语言的问题.

B)图灵机识别语言.

C)图灵机可以编码为(大)整数.

D)因此,可能的图灵机的数量是无穷无尽的

E)集合的幂集只是该集合的所有可能子集.

F)如果一个集合是无数的,它的功率集更大,即无数无限.

G)因此,如果一种语言是无限的,它就有无数无数的子集.这些都代表了一个问题.但是,只有很多图灵机可以用来解决这些问题.如果我们无法解决图灵机的问题,就无法解决.

结论......我们只能解决所有问题的无限小部分.

我的问题几乎就在这里......

每当我向学生提出这个论点时,他们就会陷入可数与无数无限之间.他们通常没有很强的数学背景,所以试图通过康托尔的对角化论证来解释他们的眼睛.

通常我试着给他们一些他们可以抓住的东西,比如这样......在计数数字线的任何部分放置一个有限的盒子,我们捕获有限数量的那些数字......但是在有限的数量上放置一个有限的盒子.实数行,我们捕获无限数量的实数.一种证据表明存在的实数比计数数字多.

最后我的问题......你如何向那些从未听过这个概念的人解释多层次无穷大的概念,可能不是数学倾向的?

最终编辑:我通过提出这个问题了解了很多,并且我很感激反馈.我浪费了太多时间试图找出"社区维基"究竟是什么.我了解到,有些人反对理论问题存在固有的偏见,我认为这只是一个错误,因为我们今天做的很多事情都是昨天的理论.但这种偏见是自然的,虽然我不同意理论的价值,但我对它没有任何问题,这有助于我理解我的学生来自哪里.我认为BS评论是不必要的.

我觉得这个问题根本不是一个民意调查或一个2009年的问题.那些只想要编码问题和编码答案的人可能想重新审视这个要求.我已将此问题移至社区维基,但强烈认为我不得不通过不当使用武力来这样做.

turing-machines infinity

11
推荐指数
2
解决办法
2131
查看次数

Haskell中非整数的整数居民

Haskell中的Peano自然数data Peano = Zero | Succ Peano被定义为非常奇怪的野兽:除了简单的自然和底值之外,其中还有一个"无限整数" inf = Succ inf.

还有其他Peano类型的居民吗?这个无限号码有名字吗?

haskell types integer infinity

11
推荐指数
2
解决办法
503
查看次数

选择数字等于无穷大的位置

在SQL中,如何选择列(数据类型number:) Infinity在Oracle 10g上等于的表的行?

select * from MYTABLE where MYCOLUMN = Infinity;
Run Code Online (Sandbox Code Playgroud)

sql oracle numbers infinity

11
推荐指数
1
解决办法
1万
查看次数

为什么这个方法返回double.PositiveInfinity不是DivideByZeroException?

我在VS2015 C#interactive中运行了以下代码片段并得到了一些非常奇怪的行为.

> double divide(double a, double b)
. {
.     try
.     {
.         return a / b;
.     }
.     catch (DivideByZeroException exception)
.     {
.         throw new ArgumentException("Argument b must be non zero.", exception);
.     }
. }    
> divide(3,0)
Infinity    
> 3 / 0
(1,1): error CS0020: Division by constant zero
> var b = 0;
> 3 / b
Attempted to divide by zero.
> 
Run Code Online (Sandbox Code Playgroud)

为什么该方法返回无穷大而3/0引发错误并且3/b抛出格式化错误?我可以强制分裂抛出错误而不是返回无穷大吗?

如果我重新格式化方法

double divide(double a, double b)
{
    if ( …
Run Code Online (Sandbox Code Playgroud)

c# exception-handling infinity dividebyzeroexception

11
推荐指数
1
解决办法
1012
查看次数

Inf和NaN是如何实施的?

由于数学概念,我清楚地知道什么infnan实际上都是.但我真正感兴趣的是如何在编程语言中实现它们.

在Python中,我可以使用inf,并nan在算术和条件表达式,如下所示:

>>> nan = float('nan')
>>> inf = float('inf')
>>> 1 + inf
inf
>>> inf + inf
inf
>>> inf - inf
nan
Run Code Online (Sandbox Code Playgroud)

这将使我相信python内部对这两个数学量有一个特殊的保留位序列,没有其他数字可以假设这些位置.我的假设是否正确?能否请你在这方面给我启发?

如果我的假设是正确的,那么这可以很容易地解释:

>>> inf == inf
True
Run Code Online (Sandbox Code Playgroud)

但是,这不是:

>>> nan == nan
False
Run Code Online (Sandbox Code Playgroud)

显然,在数学中,这是正确的答案.但是python如何知道它应该False在这个实例中吐出来?

此外,python的实现与java或c ++的实现有何不同?

python nan infinity

11
推荐指数
2
解决办法
433
查看次数

表示无限和NAN独立于实现

在Common Lisp中是否存在表示无穷大或无数字(NAN)的实现独立方式?它需要是双浮点数,并且具有正值和负值.在SBCL,结果

(apropos "INFINITY")
Run Code Online (Sandbox Code Playgroud)

包括

SB-EXT:DOUBLE-FLOAT-NEGATIVE-INFINITY (bound)
SB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY (bound)
Run Code Online (Sandbox Code Playgroud)

但我需要它在所有实现中都可用.我有一个编写包的附录,可以在所有平台上运行,它需要表示无限和NAN.即使是其他图书馆的功能也足够了.

iee-floats装了,现在它是我图书馆的一部分.我有一个功能,可以检测数字是否为NaN,以及检测数字是否为无穷大的函数; 我没有测试NaN,但是我的无限函数需要数字为双浮点数.SBCL的SB-EXT:DOUBLE-FLOAT-POSITIVE-INFINITY作品,但我需要它独立于实现.

common-lisp infinity

10
推荐指数
2
解决办法
2538
查看次数