Random 朱莉娅:生成唯一的随机整数数组

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])

我正在尝试创建10个元素的唯一随机整数数组。但是,我无法创建具有唯一值的数组。朱莉娅身上有类似蟒蛇的东西吗


谢谢。

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]