random

统计分布 - 伪随机数生成器模块

random_seed - 设置或获取概率分布伪随机数生成器的种子值

状态

实验性

描述

在调用变量的概率分布伪随机数生成器之前设置或获取种子值。

语法

call random_seed (put, get)

参数

put: 参数具有 intent(in),可以是 integer 类型的标量。

get: 参数具有 intent(out),是 integer 类型的标量。

返回值

返回 integer 类型的标量。

示例

program example_random_seed
  use stdlib_random, only: random_seed
  implicit none
  integer :: seed_put, seed_get

  seed_put = 1234567
  call random_seed(seed_put, seed_get)     ! set and get current value of seed
end program example_random_seed

dist_rand - 获取指定种类的随机整数

状态

实验性

描述

根据输入整数种类 n,在特定范围 [-2^k, 2^k - 1] 内生成一个整数伪随机数。这个伪随机数将通过位运算符而不是普通的算术运算符进行操作。

语法

result = dist_rand (n)

参数

n: 参数具有 intent(in),是 integer 类型的标量。

返回值

返回 integer 类型的标量。

示例

program example_dist_rand
  use stdlib_kinds, only: int8, int16, int32, int64
  use stdlib_random, only: dist_rand, random_seed
  implicit none
  integer :: put, get

  put = 135792468
  call random_seed(put, get)     ! set and get current value of seed
  print *, dist_rand(1_int8)     ! random integer in [-2^7, 2^7 - 1]
! -90
  print *, dist_rand(1_int16)    ! random integer in [-2^15, 2^15 - 1]
! -32725
  print *, dist_rand(1_int32)    ! random integer in [-2^31, 2^31 - 1]
! -1601563881
  print *, dist_rand(1_int64)    ! random integer in [-2^63, 2^63 - 1]
! 180977695517992208
end program example_dist_rand