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

如何编写place_random_bricks函数生成指定行列的随机砖块字符串

问题解决:生成m×n随机字符串与修正place_random_bricks函数

一、生成m行n列的随机字符串

要生成由m行n列(总长度为m*n)组成、每个字符从G、R、B、Y、C中随机选取且概率均等的字符串,可借助Python的random模块实现:

  • 核心逻辑:用random.choices()从指定颜色集合中重复选取m*n次(支持重复选择,默认每个元素选中概率均等),再将结果拼接为字符串。
  • 示例代码:
import random

def generate_random_grid(m, n):
    colours = ['G', 'R', 'B', 'Y', 'C']
    total_length = m * n
    random_chars = random.choices(colours, k=total_length)
    return ''.join(random_chars)

二、修正place_random_bricks函数

针对需求中place_random_bricks(m, n, colours)函数的要求,以下是修正后的实现,确保生成结果符合“按行放置、颜色选中概率均等、长度为m*n”的要求:

修正后代码

import random

def place_random_bricks(m, n, colours):
    total_cells = m * n
    # 从colours中均等概率随机选取total_cells个字符,支持重复选择
    selected_colours = random.choices(colours, k=total_cells)
    # 拼接后的字符串顺序即为按行填充结果(前n个字符对应第一行,依次类推)
    return ''.join(selected_colours)

关键修正点说明

  1. 概率均等保证:使用random.choices()替代random.sample()——sample()是无重复选取,无法满足颜色重复出现的需求;choices()默认每个元素权重相同,确保G、R、B、Y、C每个颜色选中概率均为20%。
  2. 按行放置逻辑:生成的字符列表顺序直接对应按行填充规则,前n个字符为第一行,接下来n个为第二行,以此类推,符合“完成当前行后再移至下一行”的要求。
  3. 长度正确性:通过m*n计算总单元格数,确保返回字符串长度严格匹配需求。

调用示例

# 传入包含指定颜色的字符串(如'GRBYC')
result = place_random_bricks(3, 4, 'GRBYC')
print(result)  # 输出示例:'RBGYCGGRBRYBC'(长度为12,对应3行4列)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:10:34