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

如何生成二维网格:100个数中仅25个为正随机数其余为0

实现指定数量随机数的二维网格

我来帮你搞定这个需求!要实现10×10网格里只有25个1-25的随机数、其余为0且位置随机的效果,咱们可以分步骤来做:

思路拆解

  • 先创建一个全是0的10×10网格,搭好基础框架
  • 随机选出25个不重复的位置(行+列的组合)
  • 在这些选中的位置上填充1-25的随机整数

具体代码实现

import random

# 步骤1:初始化全0的10×10网格
grid = [[0 for _ in range(10)] for _ in range(10)]

# 步骤2:生成25个不重复的随机位置
all_positions = [(i, j) for i in range(10) for j in range(10)]
selected_positions = random.sample(all_positions, 25)

# 步骤3:给选中位置填充随机数
for row, col in selected_positions:
    grid[row][col] = random.randint(1, 25)

# 打印查看结果(可选)
for row in grid:
    print(row)

代码细节解释

  • random.sample(all_positions, 25):这个方法能确保选出的25个位置完全不重复,完美满足“仅25个正随机数”的要求,不会出现同一个位置被多次赋值的情况
  • 先初始化全0网格再替换的方式,比直接生成混合列表更直观,后续调整网格大小或正随机数数量也更方便——比如要做5×5网格12个正随机数,只需要把range(10)改成range(5),random.sample的第二个参数改成12就行

扩展小技巧

如果想让1-25每个数只出现一次(也就是25个正随机数是1到25的随机排列),可以修改步骤3的代码:

# 生成1-25的随机排列
random_numbers = random.sample(range(1,26), 25)
# 一一对应赋值给选中位置
for (row, col), num in zip(selected_positions, random_numbers):
    grid[row][col] = num

这样每个正整数1-25都会恰好出现一次,位置依然是随机分布的~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:39:22