【问题标题】:Checking all the values in a matrix ocaml检查矩阵 ocaml 中的所有值
【发布时间】:2018-11-11 00:50:02
【问题描述】:

我有这个矩阵:

let arr = Array.make_matrix 4 4 0;;

以及检查所有元素是否为 0。
我听说过 for_all 函数,但我不太清楚如何将它与矩阵一起使用,因为它需要一个 int 数组或一个 int 列表。

【问题讨论】:

    标签: matrix ocaml


    【解决方案1】:

    根据文档 (https://caml.inria.fr/pub/docs/manual-ocaml/libref/Array.html),以下是您需要了解的所有内容:

    val for_all : ('a -> bool) -> 'a array -> bool
    

    Array.for_all p [|a1; ...; an|] 检查数组的所有元素是否满足谓词p。也就是说,它返回(p a1) && (p a2) && ... && (p an)

    示例:Array.for_all ((=) 0) 的类型为 int array -> bool,并检查所有元素是否为零。

    【讨论】:

      【解决方案2】:

      矩阵是一个数组数组(如果您愿意,也可以是一个行数组)。因此,您需要在每一行上执行for_all 以检查该行的所有元素是否为零,以及另一个外部for_all 以检查行上的所有for_alls 是否为真:

      let arr = Array.make_matrix 4 4 0 in
      Array.for_all (fun row ->
        Array.for_all ((=) 0) row) arr
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-04
        • 2017-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多