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

统计二进制矩阵中特定条件下连续0的出现频率

没问题,我来帮你搞定这个二进制矩阵的统计任务!先把需求再明确一遍,省得理解错:我们要统计每行里那些最后一个0后面紧跟着1的连续0块的长度频率,最后再把所有行里相同长度的频率加起来。

问题拆解与实现方案

核心规则明确

首先得搞清楚哪些连续0块是我们要统计的:

  • 只有当某个连续0块的最后一个0的下一个元素是1时,这个0块的长度才需要被记录
  • 行末尾的连续0块(后面没有元素或者是0),因为没有紧跟1,所以不算在内

举两个你给的例子:

例子1:行元素为[0,1,0,1,0,0]
符合条件的是前两个单独的0(每个后面都紧跟1),最后两个0在末尾,不算。所以行内统计:连续0长度1,频率2

例子2:行元素为[0,1,0,0,1,0,0,0,1]
三个连续0块后面都紧跟1,长度分别是1、2、3,每个的频率都是1

具体实现思路(Python示例)

下面用Python写一个可复用的函数,逻辑清晰,注释也给你写清楚了:

def count_target_zero_sequences(matrix):
    # 用字典存全局的频率统计,键是连续0的长度,值是累计频率
    global_frequency = {}
    
    for row in matrix:
        current_zero_length = 0
        # 遍历当前行的每个元素
        for idx, num in enumerate(row):
            if num == 0:
                # 遇到0就累加当前连续0的长度
                current_zero_length += 1
            else:
                # 遇到1,说明前面的连续0块符合统计条件
                if current_zero_length > 0:
                    # 更新全局频率
                    if current_zero_length in global_frequency:
                        global_frequency[current_zero_length] += 1
                    else:
                        global_frequency[current_zero_length] = 1
                    # 重置当前连续0长度,准备统计下一个块
                    current_zero_length = 0
        # 行末尾的连续0块,后面没有1,直接重置不统计
        current_zero_length = 0
    
    # 把结果按连续0长度从小到大排序,输出更直观
    sorted_result = sorted(global_frequency.items(), key=lambda x: x[0])
    return sorted_result

# 测试你给的示例矩阵
test_matrix = [
    [0, 1, 0, 1, 0, 0],
    [0, 1, 0, 0, 1, 0, 0, 0, 1]
]

# 执行统计并打印结果
final_result = count_target_zero_sequences(test_matrix)
print("最终统计结果:")
for length, freq in final_result:
    print(f"连续0长度:{length},频率:{freq}")

运行这段代码后,输出就是:

最终统计结果:
连续0长度:1,频率:3
连续0长度:2,频率:1
连续0长度:3,频率:1

边界情况说明

再给你提几个特殊场景的处理逻辑,避免踩坑:

  • 如果某行全是0:没有符合条件的0块,统计结果为空
  • 如果某行全是1:没有0块,统计结果为空
  • 如果行开头是1,后面跟着0→1:比如[1,0,1],会统计长度1的频率+1
  • 如果行中间有多个间隔的0块:比如[0,0,1,0,1,0,0,0],会统计长度2和1的频率各+1,最后三个0在末尾不统计

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:09:28