Class Basis
In: basis.f90

基本的な計算関数を実行するモジュール

Methods

rand_make  

Public Instance methods

Subroutine :
L :integer, intent(in)
: 出力する最大桁数 + 1 の数値
output :integer, intent(inout)
: 出力される乱数

任意の桁数で擬似乱数を生成するサブルーチン 混合合同法という乱数生成アルゴリズムを用いて擬似乱数を生成 $x_{n+1}=a\times x_{n}+b (mod \; L)$

[Source]

subroutine rand_make(L,output)
  ! 任意の桁数で擬似乱数を生成するサブルーチン
  ! 混合合同法という乱数生成アルゴリズムを用いて擬似乱数を生成
  ! $x_{n+1}=a\times x_{n}+b (mod \; L)$
  implicit none
  integer, intent(in) :: L  ! 出力する最大桁数 + 1 の数値
  integer, intent(inout) :: output  ! 出力される乱数
  integer :: a, b, x0, i, input

  input=time()
  input=mod(input,L)
  write(*,*) input
  a=11
  b=12
  x0=input

  do i=1,10
     x0=a*x0+b
     x0=mod(x0,L)
  end do

  output=x0

end subroutine