Random 朱莉娅:生成唯一的随机整数数组
我正在尝试创建10个元素的唯一随机整数数组。但是,我无法创建具有唯一值的数组。朱莉娅身上有类似蟒蛇的东西吗Random 朱莉娅:生成唯一的随机整数数组,random,integer,julia,random-sample,Random,Integer,Julia,Random Sample,我正在尝试创建10个元素的唯一随机整数数组。但是,我无法创建具有唯一值的数组。朱莉娅身上有类似蟒蛇的东西吗 谢谢。StatsBase中有一个示例函数: using StatsBase a = sample(1:100, 10, replace = false) 这将从1:100中抽取长度为10的样本,而无需更换。如果性能不是问题(即样本范围不是太大,或者样本计数接近样本范围),并且如果出于任何原因不想使用其他软件包,请尝试: a=randperm(100)[1:10]唯一(itr[,dim])
谢谢。StatsBase中有一个
示例
函数:
using StatsBase
a = sample(1:100, 10, replace = false)
这将从1:100中抽取长度为10的样本,而无需更换。如果性能不是问题(即样本范围不是太大,或者样本计数接近样本范围),并且如果出于任何原因不想使用其他软件包,请尝试:
a=randperm(100)[1:10]
唯一(itr[,dim])
返回一个数组,该数组仅包含itr表的唯一元素
unique([rand(1:100) for r in 1:20])[1:10]
Set()
集合是元素的集合,就像数组或字典一样,没有重复的元素
{rand(1:100) for r in 1:20}[1:10]
这不能保证运行时不会出现错误。另外,对于某些输入来说,这可能是非常不可能的。如果您想创建一个矩阵(a),比如说5列,而不是向量(在本例中为a),该怎么办。有办法做到这一点吗?类似于:
A=sample(1:100,10,5,replace=false)
我认为采样矩阵存在一些问题。但是你总是可以采样一个m*n维的向量,然后将它重塑成一个(m,n)矩阵。
{rand(1:100) for r in 1:20}[1:10]