【问题标题】:How to check if and only if one of the conditions are true in a set of statements in Julia?如何检查是否且仅当 Julia 中的一组语句中的一个条件为真?
【发布时间】:2022-12-09 06:30:55
【问题描述】:

假设我有以下语句:

1 == 1
2 == 1
3 == 2

我要验证当且仅当其中一个声明是true。上述示例的预期结果是 true。显然,如果我在上面的示例中使用 all 函数,我将得到 false。如果我使用any 函数,那么它在其他情况下就违反了规则。例如:

julia> any([1==1, 2==2, 3==1])
true

在这种情况下,我需要 false,因为有两个 true 语句,而不是一个。另一种方法是使用许多链式真实语句,如 ||&&,如果我的语句更多,这会导致很多代码行。所以,我正在为此寻找一种好的和最佳的方法。

【问题讨论】:

    标签: julia


    【解决方案1】:

    你可以使用count

    julia> count(i == 2 for i in 1:4) == 1
    true
    
    julia> count([1 == 2, 2 == 2, 3 == 2]) == 1
    true
    

    【讨论】:

    • 是的,这是另一种方法。谢谢!
    【解决方案2】:

    一种方法可以利用 sum 函数:

    julia> sum([1==1, 2==2, 3==1])
    2
    
    julia> sum([1==1, 2==1, 3==1])
    1
    

    所以:

    • 如果结果是0,那么都是false语句。
    • 如果结果为1,则只有true语句。
    • 最后,在其他情况下,存在多个真实陈述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 1970-01-01
      • 2019-05-22
      • 2022-01-19
      相关资源
      最近更新 更多