# 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 生成的数字序列由均匀伪随机数生成器的内部设置决定。