- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
本书的练习 1.3 Structure and Interpretation of Computer Programs问以下问题:
Define a procedure that takes three numbers as arguments and returns the sum of the squares of the two larger numbers.
我已经设法回答了这个问题,但仅限于整数:
use std::cmp;
fn sum_square_largest(x:isize, y:isize, z:isize) -> isize {
x * x + y * y + z * z - min_three(x, y, z) * min_three(x, y, z)
}
fn min_three<T>(v1: T, v2: T, v3: T) -> T where T: Ord {
cmp::min(v1, cmp::min(v2, v3))
}
但是当我将 sum_square_largest
函数更改为:
fn sum_square_largest(x:f64, y:f64, z:f64) -> f64 {
x * x + y * y + z * z - min_three(x, y, z) * min_three(x, y, z)
}
它给出了以下错误:特征“core::cmp::Ord”没有为类型“f64”实现[E0277]
。
这是什么?我如何定义此函数以处理 float ?
最佳答案
float 不实现 Ord
,因为它们没有总排序。 NaN
与任何值(包括另一个 NaN
)进行比较时为假。
如果你在夜间使用 Rust,你可以使用 partial_min ,这使得这类情况变得明确。
你也可以决定在类似NaN
的情况下做什么,然后在f64
上实现一个包装器类型,并实现Ord
对于它,这样它就可以处理这种情况。
关于rust - 对于 float ,如何实现三个中两个最大数的平方和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29496191/
尝试构造一段代码,返回range(1, limit)中的一个数是否为两个平方数之和(平方数如1**2 = 1,2**2 = 4 - 所以我试图分配给一个数字列表,它们是否是任何这些平方数的总和组合 -
我确实有一个矩阵,行中包含观察值(不同 pH 下的测量值),数据点作为列(随时间变化的浓度)。因此,一行包含一个 pH 值的不同数据点。 我确实想对数据拟合 ODE。所以我定义了一个成本函数,并想计算
令我惊讶的是,调用 np.inner 计算平方和比在预先计算的平方数组上调用 np.sum 快大约 5 倍: 对这种行为有什么见解吗?实际上,我对平方和的快速实现很感兴趣,因此也欢迎提出这些想法。 最
我使用lm(x~y1 + y1 + ... + yn)估计了线性回归模型,并为了应对当前的异方差性,我让 R 估计了稳健的标准误差 coeftest(model, vcov = vcovHC(mode
我使用lm(x~y1 + y1 + ... + yn)估计了线性回归模型,并为了应对当前的异方差性,我让 R 估计了稳健的标准误差 coeftest(model, vcov = vcovHC(mode
我是一名优秀的程序员,十分优秀!