Python如何生成指定元素各出现固定次数的随机序列
Python生成指定元素计数的随机序列方案
方法1:使用random.shuffle(最常用)
思路非常直接:先构造包含指定数量元素的列表,再随机打乱顺序即可,所有可能的排列出现概率均等。
示例代码:
import random # 自定义参数 x = 1 m = 5 # x出现的次数 y = 0 n = 3 # y出现的次数 # 生成原始列表 raw_list = [x] * m + [y] * n # 随机打乱 random.shuffle(raw_list) # 输出结果 print(raw_list)
运行示例输出:[1, 0, 1, 1, 0, 1, 0, 1]
方法2:使用random.sample
如果不想修改原列表,可以用采样的方式直接生成打乱后的序列,效果和shuffle一致:
import random x = 1 m = 5 y = 0 n = 3 result = random.sample([x]*m + [y]*n, k=m+n) print(result)
补充说明
- 如果需要固定随机结果方便复现,可以在打乱前加
random.seed(自定义整数),比如random.seed(42),之后每次运行都会得到相同的随机序列。 - 上述方案可以轻松扩展到更多种元素的场景,只需要在构造原始列表时加入对应数量的元素即可。
内容的提问来源于stack exchange,提问作者Manasa Muralidharan
相关产品推荐
相关产品推荐

