hax*_*tar 11 random numbers julia
此语句通常可以成功生成3个唯一的随机数,但有时它只生成2个唯一的数字.
rand(1:length(matches), 3)
Run Code Online (Sandbox Code Playgroud)
如何重写这一点,以确保始终生成3个唯一的随机数.(我也愿意使用其他功能等)
谢谢
Ale*_*ley 12
StatsBase中的示例函数有一个replace选项.
例如
using StatsBase
sample(1:10, 3, replace=false)
Run Code Online (Sandbox Code Playgroud)
文档:https://statsbasejl.readthedocs.io/en/latest/
简单回答:(下面有更完整的解释)
using StatsBase
MyRand = sample(1:10, 3, replace = false)
Run Code Online (Sandbox Code Playgroud)
有很多并发症的可能去到这一点.例如,每当绘制随机数时,总会有一些分布来自.如果要绘制许多随机数,那么统计中对此的通常描述就是您从多维分布中绘制.如果您的分布是离散的(即任何特定数字具有被选择的正概率),如果您指定没有两个条目可以彼此相等,则它实际上将是不同的分布.因此,根据您的需要,这可能会相对复杂地相对复杂.例如,如果你想要5个泊松随机变量但是规定没有两个彼此相等 - 在代码中完成这个是相对简单的,但是产生这个的分布的细节更复杂,你绘制的变量将不会更长的标准泊松随机变量.根据您的应用程序,这可能会或可能不重要,您要记住.
但是,在这种情况下,看起来你只是想从一些类别的列表中选择三个随机元素,为每个被选择的元素分配相同的概率,并确保没有元素被选中两次.在这种情况下,sample()StatsBase中的函数将完成这一操作,选择replace = false选项(即"无替换"采样,这意味着一旦选中,您可以从可能结果池中删除一个数字).