【问题标题】:Set/sequence summation operator?集合/序列求和运算符?
【发布时间】:2020-02-05 16:07:42
【问题描述】:

我有一套,S = { 1, 2, 3, 4, 5 }

如果我想用标准逻辑总结它,它只是 ∑S(SO 上没有 MathJax,所以我不能很好地格式化)。

什么是 VDM 等价物?我在语言参考的数字/集合部分没有看到任何内容。

【问题讨论】:

    标签: vdm++ vdm-sl


    【解决方案1】:

    没有标准的库函数可以做到这一点(尽管也许应该有)。你可以用一个简单的递归函数来求和一个集合:

    sum: set of nat +> nat
    sum(s) ==
        if s = {}
        then 0
        else let e in set s in
            e + sum(s \ {e})
    measure card s;
    

    “let”从集合中选择一个任意元素,然后将其添加到余数的总和中。该度量表明递归始终处理较小的集合。

    【讨论】:

      【解决方案2】:

      这应该可行:

      sum(S)
      

      但是你很容易找到这个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多