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

如何让二维数组中每行*的出现概率逐行降低?

实现二维数组每行*数量逐行减少的方案

问题说明

需要生成一个二维数组,每行中*的数量逐行递减(例如第1行size个,第2行size-1个,…,最后1行1个),且*的位置随机分布。

修正后的代码

import random
import numpy as np
import sys

size = int(sys.argv[1])
# 初始化数组,用紫色的点填充
mat = np.full((size, size), '\x1b[35m.')

def print_array():
    for y in range(size):
        # 确定当前行需要的*数量:逐行减1,第一行size个,最后一行1个
        star_count = size - y
        # 随机选择star_count个不重复的列索引
        cols = random.sample(range(size), star_count)
        # 将选中的列设置为白色的*
        for col in cols:
            mat[y][col] = '\x1b[37m*'
        # 打印当前行,所有字符连在一起后换行
        print(''.join(mat[y]))

print_array()

关键修改点

  • 控制每行*数量:通过star_count = size - y实现逐行递减,y从0开始计数,第一行对应size个*,最后一行对应1个*。
  • 随机不重复位置选择:用random.sample()从列索引中挑选指定数量的不重复位置,避免重复设置同一位置导致*数量不足。
  • 修复打印格式:原代码内层循环每次打印单个字符后换行,导致输出混乱,改用''.join(mat[y])将整行字符拼接后打印,保证每行内容在同一行显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:05:04