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

使用Python NumPy检测矩阵连续数并生成符合条件的随机5×5矩阵

解决方案

1. 核心思路

要解决这个问题,需完成三个核心任务:生成5×5随机矩阵、检测矩阵中是否存在水平/垂直方向的4个连续递增整数、循环生成直到得到符合条件的矩阵。

2. 代码实现

import numpy as np

def has_consecutive_sequence(matrix):
    # 检测垂直方向:每一列是否存在连续4个递增1的数
    for col in matrix.T:
        # 计算相邻元素的差值
        diffs = np.diff(col)
        # 寻找连续3个差值为1的情况(对应4个连续递增数)
        for i in range(len(diffs) - 2):
            if np.all(diffs[i:i+3] == 1):
                return True
    # 检测水平方向:每一行是否存在连续4个递增1的数
    for row in matrix:
        diffs = np.diff(row)
        for i in range(len(diffs) - 2):
            if np.all(diffs[i:i+3] == 1):
                return True
    return False

# 循环生成矩阵,直到找到符合条件的结果
while True:
    # 生成范围在0-99的5×5随机整数矩阵,数值范围可自行调整
    rand_matrix = np.random.randint(0, 100, size=(5, 5))
    if has_consecutive_sequence(rand_matrix):
        print("找到符合条件的矩阵:")
        print(rand_matrix)
        break

3. 代码说明

  • 生成随机矩阵:使用np.random.randint快速生成指定数值范围的5×5整数矩阵,示例中选了0-99,可根据需求修改范围。
  • 连续数检测逻辑:
    • 垂直方向:先转置矩阵遍历每一列,计算相邻元素的差值;若存在连续3个差值为1,则说明该列有4个连续递增的数。
    • 水平方向:直接遍历每一行,执行与垂直方向相同的差值检测逻辑。
  • 循环生成机制:通过while True持续生成新矩阵,直到检测函数返回True,此时输出符合条件的矩阵并终止循环。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 20:24:23