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

如何构造含1-8无重复随机数的2D 3×3矩阵?

原代码验证与正确实现

原代码不符合需求的原因

  • 取值范围错误:np.random.randint(0,10)生成的是09区间的整数,包含需求不允许的0和9,不符合18的取值要求
  • 无去重逻辑:randint方法默认允许生成重复数值,无法满足无重复的要求
  • 需求存在逻辑矛盾:3×3矩阵总共需要9个元素,但18仅包含8个不同的数字,理论上无法实现9个位置都用18的数且无重复,以下按两种常见的修正需求场景给出实现方案

方案1:需求修正为3×3矩阵元素为1~9的无重复随机数

先生成1~9的有序数组,随机打乱后重塑为3×3矩阵即可:

import numpy as np
random_matrix = np.random.permutation(np.arange(1, 10)).reshape(3, 3)
print(random_matrix)

方案2:严格保留1~8无重复要求,额外补充1个指定值

如果必须使用1~8的无重复数,可在9个位置中剩余1个位置填充自定义值(示例填充0),实现如下:

import numpy as np
# 生成1-8的无重复随机序列
nums = np.random.permutation(np.arange(1, 9))
# 补充指定值后重塑为3x3矩阵
random_matrix = np.append(nums, 0).reshape(3, 3)
print(random_matrix)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:54:01