2026a

# rand


均匀分布的随机数

函数库: TyMath

# 语法

X = rand()
X = rand(n)
X = rand(sz1,...,szN)
X = rand(S)
X = rand(s,_)

# 说明

X = rand() 返回一个在区间 (0,1) 内均匀分布的随机数。示例


X = rand(n) 返回一个长度为 n 的随机数向量。示例


X = rand(sz1,...,szN) 返回由随机数组成的 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。例如:rand(3,4) 返回一个 3×4 的矩阵。示例


X = rand(S) S 默认为 Float64。当 S 为类型,随机返回 S 类型的元素或数组;当 S 为容器,随机返回 S 中一个元素或者由 S 中元素组成的数组。


X = rand(s,_) 从随机数流 s 而不是默认全局流生成数字。

# 示例

由随机数组成的向量

生成一个由介于 0 和 1 之间的均匀分布的随机数组成的 5 元素向量。

using TyMath
r = rand(5)
r = 5-element Vector{Float64}:
0.1608778003373621
0.7917543589426914
0.04703605439813985
0.8414934941319905
0.3834737865286717
指定区间内的随机数

生成一个由区间 (-5,5) 内均匀分布的数字组成的 10×1 向量。

using TyMath
r = -5 .+ (5+5)*rand(10)
r = 10-element Vector{Float64}:
-1.0202981638234232
-4.10199231770325
-1.787437578978719
-3.122894375964098
2.598442752032586
-0.748159672688427
3.671559125471786
-0.34762329003954484
-4.908743371337265
-4.881505265978328

一般来说,可以使用公式 r = a .+ (b-a) * rand(N) 生成区间 (a,b) 内的 N 个随机数。

随机整数
using TyMath
r = rand(10:50,5)
5-element Vector{Int64}:
27
22
39
44
45
随机复数

生成一个实部和虚部位于区间 (0,1) 内的随机复数。

using TyMath
a = rand() + 1im*rand()
a = 0.45296329631735377 + 0.18573297445822812im
由随机数组成的三维数组

创建一个由随机数组成的 3×2×3 数组。

using TyMath
X = rand(3,2,3)
X = 3×2×3 Array{Float64, 3}:
[:, :, 1] =
0.658638  0.748294
0.237578  0.580883
0.910355  0.774707

[:, :, 2] =
0.0424328  0.822953
0.533143   0.851095
0.408082   0.964115

[:, :, 3] =
0.394665  0.741083
0.41216   0.251097
0.407681  0.807933
指定随机数的数据类型。

创建一个由其元素为 Float16 的随机数组成的向量。

using TyMath
r = rand(Float16,4)
r = 4-element Vector{Float16}:
0.4854
0.668
0.967
0.699
eltype(r)
ans = Float16
根据随机数算法生成随机数。

设置随机数种子,生成 5 元素向量。

using TyMath
rng = mt19937ar(1234)
r = rand(rng,5)
5-element Vector{Float64}:
 0.1915194503788923
 0.6221087710398319
 0.4377277390071145
 0.7853585837137692
 0.7799758081188035

# 输入参数

n - 向量的长度
整数值

向量的长度,指定为整数值。

如果 n 为 0,则 X 为一个空向量。

数据类型: Int64 | Int32 | Int16 | Int128 | UInt8 | UInt16 | UInt32 | UInt64

sz1,...,szN - 每个维度的大小(作为单独参数)
整数值

每个维度的大小,指定为包含整数值的单独参数。

如果任何维度的大小为 0,则 X 为空数组。

数据类型: Int64 | Int32 | Int16 | Int128 | UInt8 | UInt16 | UInt32 | UInt64

S - 随机的数组
数组

随机的数组,指定为包含整数值的向量、矩阵或多维数组。

s - 随机数流
随机数种子

随机数流,任一随机数种子。

# 提示

rand 生成的数字序列由均匀伪随机数生成器的内部设置决定。

# 另请参阅

randi | randn | randperm