当前位置: 首页 > 面试题库 >

编程语言中的协方差和协方差

松阳泽
2023-03-14
问题内容

谁能解释我,编程语言理论中协变和逆变的概念吗?


问题答案:

协方差 非常简单,最好从某些收集类的角度来考虑List。我们可以 参数化
List一些类型参数类T。也就是说,我们的列表包含Tsome 类型的元素T。如果,列表将是协变的

S是Tiff列表的子类型List [S]是List [T]的子类型

(在这里,我使用数学定义 iff 表示 当且仅当 。)

也就是说,a List[Apple] 是一个 List[Fruit]。如果有一些例程接受a
List[Fruit]作为参数,而我有一个List[Apple],则可以将其作为有效参数传入。

def something(l: List[Fruit]) {
    l.add(new Pear())
}

如果我们的集合List是可变的,那么协方差就没有意义,因为我们可能会假设我们的例程可以像上面那样添加其他水果(不是苹果)。因此,我们只希望 不变的
集合类是协变的!



 类似资料:
  • 主要内容:ANCOVA分析,比较两个模型我们使用回归分析来创建描述预测变量变量对响应变量的影响的模型。有时,如果我们有类似于是/否或男/女等值的分类变量,简单回归分析为分类变量的每个值提供多个结果。在这种情况下,可以通过使用分类变量和预测变量来研究分类变量的影响,并比较分类变量的每个级别的回归线。 这样的分析被称为协方差分析,也称为ANCOVA。 输入数据 从R提供的数据集创建一个包含字段,和的数据框。 这里我们将作为响应变量,将作为预

  • 我正在学习Scala中的函数式编程原理,在学习子类型和泛型时,我对协方差有一个困惑: 给定:或是的子类型 编辑: 下面是的定义:

  • 问题内容: 请显示一个有关Java中协方差和逆方差的好例子。 问题答案: 协方差: Sub#getSomething是协变的,因为它返回Super#getSomething的返回类型的子类(但完全填充了Super.getSomething()的协定) 逆差 Sub#doSomething是互变的,因为它采用了Super#doSomething的参数的超类的参数(但是,再次填充了Super#doSo

  • 问题内容: 协方差(大致)是在使用它们的复杂类型中 镜像 “简单”类型的 继承 的能力。 例如,我们始终可以将的实例视为的实例。如果ComplexType是协变的,则可以将A 视为a 。 我想知道:协方差的“类型”是什么,它们与C#有什么关系(是否支持它们?) 代码示例将很有帮助。 例如,一种类型是Java支持的 返回类型covariance ,但C#不支持。 我希望有功能编程知识的人也能加入!

  • 本文向大家介绍在C ++中查找协方差的程序,包括了在C ++中查找协方差的程序的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将讨论一个寻找协方差的程序。 为此,我们将提供两组随机变量。我们的任务是计算它们的协方差,即这两个值相差多少的度量。 示例 输出结果

  • 2.8.1. 基本收敛 尽管是协方差矩阵的无偏估计, 最大似然估计不是协方差矩阵的特征值的一个很好的估计, 所以从反演得到的精度矩阵是不准确的。 有时,甚至出现数学原因,经验协方差矩阵不能反转。 为了避免这样的反演问题,引入了经验协方差矩阵的一种变换方式:shrinkage 。 在 scikit-learn 中,该变换(具有用户定义的收缩系数) 可以直接应用于使用 shrunk_covarianc