You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Julia中判断一组语句是否恰好有一个为真?

Julia中验证布尔序列恰好有一个为true的高效实现

方法一:利用布尔值求和(简洁直观)

在Julia里,true等价于1,false等价于0,直接对布尔数组求和并判断结果是否等于1,就能实现需求:

# 符合条件的示例(恰好一个true)
sum([1 == 1, 2 == 1, 3 == 2]) == 1  # 返回 true

# 不符合条件的示例(两个true)
sum([1 == 1, 2 == 2, 3 == 1]) == 1  # 返回 false

这种写法简洁易读,对于大多数常规场景效率足够——Julia的sum函数经过高度优化,执行速度很快。

方法二:短路遍历函数(性能优先)

如果布尔序列较长,或者需要在找到第二个true时立即终止计算(避免不必要的遍历),可以自定义一个短路函数:

function exactly_one_true(bools)
    found_true = false
    for b in bools
        if b
            if found_true
                # 已找到过一个true,当前是第二个,直接返回false
                return false
            else
                found_true = true
            end
        end
    end
    # 遍历结束后,返回是否恰好找到一个true
    return found_true
end

测试不同场景:

exactly_one_true([1 == 1, 2 == 1, 3 == 2])  # true
exactly_one_true([1 == 1, 2 == 2, 3 == 1])  # false
exactly_one_true([false, false, false])     # false
exactly_one_true([true])                    # true

这个函数在遇到第二个true时会立即返回,无需遍历剩余元素,在长序列或前半段就有多个true的场景下性能更优。

内容的提问来源于stack exchange,提问作者Shayan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:10:29