java

您所在的位置:网站首页 怎样是无穷大 java

java

2024-07-14 14:40| 来源: 网络整理| 查看: 265

一个通用的解决方案是引入一种新类型。它可能涉及更多,但它具有适用于任何未定义其自身无穷大的类型的优势。

如果T是一个lteq已定义的类型,您可以InfiniteOr使用以下内容进行定义lteq:

class InfiniteOr with type parameter T: field the_T of type null-or-an-actual-T isInfinite() return this.the_T == null getFinite(): assert(!isInfinite()); return this.the_T lteq(that) if that.isInfinite() return true if this.isInfinite() return false return this.getFinite().lteq(that.getFinite())

我会留给你把它翻译成确切的 Java 语法。我希望这些想法很清楚;但无论如何,让我把它们拼出来。

这个想法是创建一个新类型,它具有与一些已经存在的类型相同的值,加上一个特殊的值——据你所知,你可以通过公共方法知道——完全按照你希望无穷大的行为方式,例如它大于还要别的吗。我在null这里用来表示无穷大,因为这在 Java 中似乎是最直接的。

如果你想添加算术运算,决定它们应该做什么,然后实现它。如果您首先处理无限情况,然后在原始类型的有限值上重用现有操作,这可能是最简单的。

对于在处理右手无穷大之前处理左侧无穷大或反之亦然的惯例是否有益,可能存在也可能不存在一般模式;如果不尝试,我无法判断,但对于小于或等于 ( lteq),我认为首先查看右手边无穷大更简单。我注意到那不是lteq可交换的,而是和是;也许这是相关的。addmul

注意:想出一个关于无限值应该发生什么的良好定义并不总是那么容易。它用于比较,加法和乘法,但可能不是减法。此外,您可能需要注意无限基数和序数之间的区别。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3