Fortran-随机数生成

1. 前言

在写fortran程序时用到了随机数生成,记录一下折腾的过程备用

2. 随机数生成

2.1 rand( )

直接调用rand(),

my_refresh(i,j,k)=(itr*i*j+K)/(rand()*10)

编译器报错
This name does not have a type, and must have an explicit type. [RAND]
经查,rand() 是某些编译器的扩展,并不标准。是很早以前语法里没有 random_number时,编译器为了满足用户需求自己提供的。
求助fortran的rand使用,谢谢

2.2 random_seed和random_number

改用random_number后

my_refresh(i,j,k)=(itr*i*j+K)/(RANDOM_NUMBER()*10)

依然报错
This name does not have a type, and must have an explicit type. [RANDOM_NUMBER]
应该是把RANDOM_NUMBER当做未定义的变量了。RANDOM_NUMBER(9.225 RANDOM_NUMBER — Pseudo-random number)是一个函数,可以有一个参数,即返回的随机数。

为了使随机效果更好,增加random_seed根据日期和时间随机地提供种子,使得随机数更随机。


program random
   implicit none
   real :: x
   call random_seed ()     ! 系统根据日期和时间随机地提供种子
   call random_number (x)  ! 每次的随机数就都不一样了
   write(*,*) x  !输出一个0——1之间的随机数
   stop
end program random

(20181111)Fortran 产生随机数本文还提供了产生区间内随机数和随机数组的产生发方法。

暂时就用这些,其他的以后再修改吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值