# randi
均匀分布的伪随机整数
函数库: TyMath
# 语法
# 说明
X = randi(imax) 返回一个介于 1 和 imax 之间的伪随机整数标量。
X = randi(imax , n) 返回长度为 n 的向量,其中包含从区间 (1,imax) 的均匀离散分布中得到的伪随机整数。示例
X = randi(imax , sz1, ..., szN ) 返回 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如,randi(10, 3, 4) 返回一个介于 1 和 10 之间的伪随机整数组成的 3×4 数组。示例
X = randi(imax , sz ) 返回一个数组,其中大小元组 sz 定义 size(X)。例如 rand(10, (3, 4)) 返回一个由介于 1 和 10 之间的伪随机整数组成的 3×4 数组。示例
X = randi((imin ,imax ),___) 使用以上任何语法返回一个数组,其中包含从区间 (imin,imax) 的均匀离散分布中得到的整数。
X = randi(rng , ...) 从随机数流 rng 而不是默认全局流生成整数。要创建一个流,请用 MT19937ar。在每次生成随机数前指定 rng,后跟上述语法中的任意参数组合。示例
# 示例
由随机整数组成的向量
生成一个由介于 1 和 10 之间的随机整数组成的 5 元素向量。randi 的第一个输入指示采样区间中的最大整数(采样区间中的最小整数为 1)。
using TyMath
r = randi(10, 5)
5-element Vector{Int64}:
6
8
1
7
9
指定区间的随机整数
生成一个由样本区间 (-5, 5) 中均匀分布的随机整数组成的 10 元素向量。
using TyMath
r = randi((-5,5), 10)
10-element Vector{Int64}:
1
-5
-1
2
-1
-4
0
1
3
1
控制随机数生成
保存随机数生成器的状态并创建一个由随机整数组成的 1×5 矩阵。
using TyMath
rng = mt19937ar(5489);
r = randi(rng, 10, 1, 5)
1×5 Matrix{Int64}:
9 10 2 10 7
将随机数生成器的状态恢复为 rng,然后创建一个由随机整数组成的新 1×5 矩阵。值与之前相同。
rng = mt19937ar(5489);
r = randi(rng, 10, 1, 5)
1×5 Matrix{Int64}:
9 10 2 10 7
由随机整数组成的三维数组
创建一个由介于 1 和 500 之间的均匀分布的随机整数组成的 3×2×3 矩阵。
using TyMath
X = randi(500, (3, 2, 3))
3×2×3 Array{Int64, 3}:
[:, :, 1] =
371 414
32 101
432 239
[:, :, 2] =
236 456
236 462
162 384
[:, :, 3] =
362 88
121 71
294 146
现有数组定义的大小和数值数据类型
创建一个 8 位有符号整数,和一个 2×2 矩阵。
using TyMath
imax = Int8(10)
p = [3 2;-2 1]
创建一个与 imax 具有相同类型,与 p 具有相同大小的数组。
sz = size(p)
X = randi(imax, sz)
2×2 Matrix{Int8}:
8 5
2 10
eltype(X)
Int8
# 输入参数
imax - 示例区间中的最大整数正整数
示例区间中的最大整数,指定为一个正整数。randi 绘制示例区间 (1, imax) 中均匀分布的值。
示例: randi(10, 5)。
imin - 示例区间中的最小整数1(默认)|整数标量
示例区间中的最小整数,指定为整数标量。
imin 和 imax 都必须为满足
例如,randi((50, 100), 5) 返回一个由介于 50 和 100(包括二者)之间的随机整数组成的 5×1 向量。
n - 向量的长度整数标量
向量的长度,指定为整数值。如果 n 为 0,则 X 为一个空向量。
数据类型: Int128 | Int64 | Int32 | Int16 | Int8 | UInt8 | UInt16 | UInt32 | UInt64 | UInt128
sz1,...,szN - 每个维度的大小(作为单独参数)一个或以上的非负整数值
每个维度的大小,指定为包含整数值的单独参数。
如果任何维度的大小为 0,则 X 为空数组。
sz - 每个维度的大小(作为元组)非负整数元组
每个维度的大小,指定为由整数组成的元组,此元组的每个元素指示对应维度的大小。
如果任何维度的大小为 0,则 X 为空数组。
rng - 随机数流
随机数流,指定为 MT19937ar 对象。
示例: rng = MT19937ar(1234); randi(rng, (5,10) ,(3,1))。