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

如何确保torch.randint生成的结果包含范围内所有值至少一次?

生成包含0-9所有值至少一次的15个随机数

PyTorch实现方案

核心逻辑:先确保覆盖0-9的全部数值,再补充剩余数量的随机值,最后整体打乱顺序。

import torch

# 生成0-9的随机排列,保证每个值至少出现一次
full_set = torch.randperm(10)
# 生成额外的5个0-9之间的随机数
extra_values = torch.randint(low=0, high=10, size=(5,))
# 拼接两部分并打乱顺序
combined = torch.cat([full_set, extra_values])
shuffled_indices = torch.randperm(combined.numel())
final_result = combined[shuffled_indices]

print(final_result)
# 示例输出:tensor([5, 9, 3, 7, 0, 2, 7, 1, 4, 6, 8, 9, 0, 5, 2])

Python原生实现方案

如果不需要依赖PyTorch,用标准库也能实现同样需求:

import random

# 先构建包含0-9的列表并打乱
full_set = list(range(10))
random.shuffle(full_set)
# 生成额外5个随机数
extra_values = [random.randint(0, 9) for _ in range(5)]
# 合并后再次打乱
final_result = full_set + extra_values
random.shuffle(final_result)

print(final_result)
# 示例输出:[7, 0, 9, 2, 5, 7, 1, 4, 8, 6, 3, 0, 5, 9, 3]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:42:39