请求实现单元格内连续不超5次的随机0/1填充功能
生成限制连续次数的随机0/1矩阵
实现思路
- 逐行构建随机序列,每生成一个数字时,跟踪当前相同数字的连续出现次数
- 若连续次数已达5次,下一个数字必须切换为另一个值;否则随机选择0或1
- 重复上述逻辑,直到生成指定长度的行,再按需求生成多行即可
Python代码示例
import random def generate_valid_row(length): if length == 0: return [] row = [] current_num = random.choice([0, 1]) row.append(current_num) consecutive_count = 1 for _ in range(length - 1): if consecutive_count >= 5: current_num = 1 - current_num consecutive_count = 1 else: next_num = random.choice([0, 1]) if next_num == current_num: consecutive_count += 1 else: current_num = next_num consecutive_count = 1 row.append(current_num) return row # 生成5行,每行12个元素的矩阵 rows = 5 cols = 12 matrix = [generate_valid_row(cols) for _ in range(rows)] # 打印格式化后的矩阵 for row in matrix: print(' '.join(map(str, row)))
输出示例
0 1 1 1 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1
说明
- 通过
consecutive_count变量跟踪当前数字的连续次数,一旦达到5次就强制切换 - 未触发限制时,数字完全随机选择,保证序列的随机性
- 可通过调整
rows和cols参数生成任意行列数的矩阵
内容的提问来源于stack exchange,提问作者Ektor Skourtis
相关产品推荐
相关产品推荐

