首先,我想将1到n的整数均分为m组。
其次,我想生成随机整数,而不用 Julia 在每组中进行替换。
第三,我想组合所有随机整数。
例如,n=10000,m=2。那么朱莉娅代码将是
using Distributions
n=10000
order1 = sample(1:5000, 5000, replace = false)
order2 = sample(5001:10000, 5000, replace = false)
order=[order1;order2]
Run Code Online (Sandbox Code Playgroud)
例如,n=10000,m=5。那么朱莉娅代码将是
using Distributions
n=10000
order1 = sample(1:2000, 2000, replace = false)
order2 = sample(2001:4000, 2000, replace = false)
order3 = sample(4001:6000, 2000, replace = false)
order4 = sample(6001:8000, 2000, replace = false)
order5 = sample(8001:10000, 2000, replace = false)
order=[order1;order2;order3;order4;order5]
Run Code Online (Sandbox Code Playgroud)
我只是想知道是否可以改进上面的 Julia 代码。如果m=100。那么我的代码将会非常长。必须有一种更简单的方法来做到这一点。
假设你有例如。n=30
和m=5
(请注意n % m == 0
)。\n然后您可以创建用于保存名为 的结果的位置x
:
x = collect(1:n);\n
Run Code Online (Sandbox Code Playgroud)\n现在你可以做这个衬垫(这需要using Random
):
shuffle!.(eachcol(reshape(x, n \xc3\xb7 m, m)));\n
Run Code Online (Sandbox Code Playgroud)\n让我们看看结果(您有 5 个组,每个组中的值都是随机排序的,没有重复):
\njulia> x'\n1\xc3\x9730 adjoint(::Vector{Int64}) with eltype Int64:\n 1 5 3 2 4 6 12 10 8 9 7 11 16 18 13 14 15 17 24 21 23 22 20 19 26 25 27 30 29 28\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
98 次 |
最近记录: |