partial-ordering相关内容

为什么 Rust 不通过 f64 和 f32 的 Ord 特征实现全排序?

虽然 Rust 中的所有整数类型都实现了 Ord 强调全序,浮点类型只实现 PartialOrd.这意味着可能存在无法比较的浮点值.这似乎很难理解,因为浮点数可以被认为是对实数的近似,而实数恰好是一个完全有序的集合.即使加上正无穷和负无穷,也能保持实数集完全有序.为什么在 Rust 中有这个奇怪的选择? 这个限制意味着一个通用的排序/搜索算法只能假设数字的部分排序.IEEE 754 标准似乎 ..
发布时间:2022-01-09 10:32:50 其他开发

模板推导中的偏序过程是什么

阅读C++11标准我无法完全理解以下语句的含义.非常欢迎示例. 使用两组类型来确定偏序.对于每个在所涉及的模板中,有原始函数类型和转换的函数类型.[注:转换类型的创建在 14.5.6.2 中描述.— 尾注] 演绎过程使用转换类型作为参数模板和原始类型其他模板作为参数模板.这个过程做两次对于偏序比较中涉及的每种类型:一次使用转换后的 template-1 作为参数模板,template-2 作 ..

为什么 Rust 不通过 f64 和 f32 的 Ord 特征实现总排序?

虽然 Rust 中的所有整数类型都实现了 Ord 强调全序,浮点类型只实现 PartialOrd.这意味着可能存在无法比较的浮点值.这似乎难以理解,因为浮点数可以被认为是对恰好是全序集的实数的近似.即使正无穷大和负无穷大相加也能保持实数集完全有序.为什么在 Rust 中有这个奇怪的选择? 此限制意味着通用排序/搜索算法只能假设数字的部分排序.IEEE 754 标准似乎提供了一个总排序谓词. ..
发布时间:2021-12-10 10:56:19 其他开发

如何为偏序生成模型?

我正在尝试使用 Z3 为描述偏序理论的一组 SAT 断言生成模型.我尝试了 Z3 指南中的子类型示例,但似乎无法获得具体模型.Z3 有没有办法生成一个模型来描述元素之间的顺序并满足我所做的所有断言? 例如,以下是“子类型"的约束.Z3 是否有可能产生类似“int-type * ..
发布时间:2021-10-04 20:38:03 其他开发

为什么按照GCC 5.3和Clang 4.0,接受数组的C ++模板不比接受指针的模板更专业?

为什么接下来的两个模板声明不明确(所以没有一个比另一个更专业)?我知道在Stack Overflow上已经多次提出这个问题,但通常人们会回答如何解决歧义,而不是为什么会发生歧义。 I。 模板 void func(char * buf,T size){} II。 模板 void func(char(& buf)[N],std : ..

模板推导中的部分排序过程是什么

阅读C ++ 11标准后,我无法完全理解以下语句的含义。例子非常受欢迎。 使用两组类型来确定部分排序。对于涉及的每个模板 ,都有原始函数类型和 转换后的函数类型。 [注意:在14.5.6.2中描述了转换类型 的创建。推导过程使用 转换后的类型作为参数模板,并使用 其他模板的原始类型作为参数模板。对于部分排序比较中涉及的每种类型,此过程执行两次 :一次使用 将转换后的templa ..

使用严格的函数式编程从poset生成DAG

这里是我的问题:我有一个序列S(非空但可能不是不同)集s_i,并且对于每个s_i需要知道S(i≠j)中有多少集s_j是s_i的子集。 我还需要增量性能:一旦我拥有了所有的计数,我可以用一些s_i子集替换一组s_i,并逐步更新计数。 b $ b 使用纯功能代码执行所有这些将会是一个巨大的优势(我在Scala中编写代码)。 排序,我认为解决我的问题的最好方法是构建一个代表集合的Hass ..

`std :: less'如何工作?

指针关系运算子未定义总订单( C ++ 11标准的第5.9节): 如果两个指针 p 和 q 指向不是同一对象或同一数组或不同函数的元素的成员的不同对象,或者如果它们中只有一个为空,则 p , p> q , p p> = q 未指定。 std :: less 文档说: std :: less 对于任何指针类型都会产生一个总次序,即使内置的运算符 如何从部分订单收取此总订单? ..
发布时间:2016-10-23 12:26:59 C/C++开发

什么时候比其他模板更专业? '和'/'或'与逻辑混淆。

在C ++ 11草稿的14.8.2.4p10中,写入了 如果对于每个类型都被认为是给定的模板至少对于所有类型是专门的,并且对于某些类型的集合更专门,并且其他模板不是更专用于任何类型,或者至少不是对于任何类型专门化,则给定模板比其他模板更专业化。 为什么有“或者至少不是专门为任何类型”?就我所见,如果我们有一个类型列表 T1,T2,T3 U1,U2 ,U3 ..
发布时间:2016-10-22 19:12:52 C/C++开发

什么是模板扣除中的部分排序过程

我阅读了关于c ++ 11标准,但是不能很好地理解下面的示例是非常优选的。 两组类型用于确定部分排序。对于每个 涉及的模板,有原始函数类型和 变换函数类型。 [注:转换类型 的创建在14.5.6.2中描述。 - end note]扣除过程使用 变换类型作为参数模板,并将 其他模板的原始类型用作参数模板。这个过程对 执行两次 对于部分顺序比较中涉及的每个类型:一次使用 将转换的 ..
发布时间:2016-10-13 12:13:42 C/C++开发

偏序比较,以总计有序比较

首先:这不是问题偏序比较的重复,而是建立在它 我的目标是要排序的对象的列表(例如,[2,“一个”,1])就地使得排序后没有两个整数乱序 对于这一点,我用这个答案用下面的偏序的实施,并得到了抛出:IllegalArgumentException : java.lang.IllegalArgumentException:如果比较的方法违反了一般的合同! 在java.util.T ..
发布时间:2015-11-30 21:10:55 Java开发

什么是排序部分有序列表的最佳方法是什么?

可能是最好的一个小例子来说明。 由于关系 A< B< C A< P< Q 正确的输出将 ABCPQ或APQBC或APBCQ ...等。 在换言之,任何顺序是有效,其中给定的关系式成立。 我最感兴趣的解决方案是最容易实现的,但最好为O(n)的速度和时间有趣的是也。 解决方案 这就是所谓的拓扑排序。 标准的算法,输出一个最小的元素,然后将其 ..