参考:http://blog.sciencenet.cn/blog-588243-502012.html

*********************************************************************

1)生成一个0-1之间的随机数

先用random_seed (),系统根据日期和时间随机地提供种子,使得随机数更随机了。

random_number(x) 产生一个0到1之间的随机数(x可以是向量),但是每次总是那几个数。

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

**********************************20181112************************************************

2)产生一个任意区间的随机数:

program random_ex
implicit none
real::randNum
real::lbound,ubound
real::my_random!调用函数时,也要声明函数数据类型real,不然出错
call random_seed()!库函数,生成随机数前调用
randNum=my_random(1.0,10.0)
write(*,*) randNum
endfunction my_random (lbound,ubound)
implicit nonereal :: lbound,uboundreal :: lenreal :: my_randomreal :: tlen=ubound-lbound  !计算范围大小call random_number(t)  !t是0-1之间的随机数my_random=lbound+len*treturn
end  

3)产生一个任意区间的随机数组:(当函数返回值为一个数组是,此时需要在主函数中定义一个函数接口interface)

参考:https://mp.csdn.net/postedit/83963544

program interface_eximplicit noneinterface !定义函数func的使用接口
function random10(lbound,ubound)
implicit none
real::lbound,ubound
real::random10(10)!返回值是一个数组
end function
end interfacereal::a(10)
call random_seed()!库函数,生成随机数前调用
a=random10(1.0,10.0)!生成10个0-10之间的随机数
write(*,'(10F6.2)') aend!编写函数random10(lbound,ubound),!返回10个范围在(lbound,ubound)之间的随机数
function random10(lbound,ubound)
implicit none
real::lbound,ubound
real::random10(10)real::t,len
integer i
len=ubound-lbound
do i=1,10call random_number(t)!t是0-1之间的随机数random10(i)=lbound+len*t  !把t转换为lbound和ubound范围
end do
returnend function

将上面的(lbound,ubound)输为(0.0,1.0)就可以得到0-1之间的随机数;

program interface_eximplicit noneinterface !定义函数func的使用接口
function random10(lbound,ubound)
implicit none
real::lbound,ubound
real::random10(10)!返回值是一个数组
end function
end interfacereal::a(10)
call random_seed()!库函数,生成随机数前调用
!a=random10(1.0,10.0)!生成10个0-10之间的随机数
a=random10(0.0,1.0)!生成10个0-1之间的随机数
write(*,'(10F6.2)') aend!编写函数random10(lbound,ubound),!返回10个范围在(lbound,ubound)之间的随机数
function random10(lbound,ubound)
implicit none
real::lbound,ubound
real::random10(10)real::t,len
integer i
len=ubound-lbound
do i=1,10call random_number(t)!t是0-1之间的随机数random10(i)=lbound+len*t  !把t转换为lbound和ubound范围
end do
returnend function

4)如何产生正态分布的随机数??(unresolved)

(20181111)Fortran 产生随机数相关推荐

  1. 老版本fortran语言 内存无效_面向科学计算的高性能动态编程语言 Julia

    Julia是一个新的高性能动态高级编程语言.语法和其他编程语言类似,易于其他语言用户学习.Julia拥有丰富的函数库,提供了数字精度.精致的增幅器(sophisticated amplifier)和分 ...

  2. python从数分到数编(part2)--随机数及数组

    学习笔记,仅供参考,觉得哪里不错就记哪里 学习书目:<python编程从数据分析到数据编程>–朝乐门; 参考自:numpy.random.randn()与rand()的区别;Python ...

  3. 最大最完整的---NAG Fortran 算法库

    转载www.smart-cores.com中  NAG Fortran 算法库 最大最完整的商用 Fortran 数值算法库   NAG Fortran 软件库是由专家开发,适用于多种应用领域中,是 ...

  4. visual fortran常用数值算法集_资深游戏数值策划自白:数值不是你想象的那么简单!...

    做一个靠谱的策划,这是我唯一的心愿.关于游戏数值我只想说:数值不是你想象的那么简单! 下面具体说说我对数值工作的想法. 1)不要随大流. 例如,很多人就认为腾讯能成功靠的不就是QQ么. 例如,很多人认 ...

  5. 运用遗传算法求解函数极值(fortran)

    运用遗传算法求解函数极值(fortran) 写在前面 遗传算法的前世今生 算法步骤简介 遗传算法的主体结构 开始求解: 结果显示: 最后再来说一些需要注意的地方 写在前面 这篇文章适合一些应急学习最优 ...

  6. 3 随机数与蒙特卡洛方法及Python实现

    0 建议学时 4学时 1 引入 1.1 随机数与采样 客观世界的某些行为,结果具有随机性: 掷骰子.投硬币: 等待公交车的时间: 种子发芽的比例: 1.2 随机数函数 1.2.1 random模块 P ...

  7. 粒子群算法Fortran代码(OMP并行)

    粒子群算法可用于解决强非线性优化问题,原理较为简单(参加:最优化算法之粒子群算法(PSO)_青萍之末的博客-CSDN博客_粒子群算法),这里给出Fortran代码实现模块( module POS).该 ...

  8. fortran matlab eng,[转载]关于MATLAB转FORTRAN的几点注意

    1.关于主程序:需加implicit none,变量需定义,其他规则同一般程序,句末分号记得去掉.此处再着重提及一下变量声明,常量加parameter不用说,普通变量根据要求选择,外部子程序必要是需加 ...

  9. Fortran语法汇总(下)(持续更新中)

    目录 第5章 I/O操作 5.1 格式描述符 5.2 OPEN语句 5.3 CLOSE语句 5.4 INQUIRE语句 5.5 READ语句 5.6 WRITE语句 5.7 文件定位语句 5.8 I/ ...

最新文章

  1. 【组队学习】【27期】动手学数据分析
  2. .Net 中DataSet和DataTable的 区别与联系
  3. matlab常用工具箱的调用指令
  4. android 播放器 反交错,反交错- 视频横纹处理
  5. linux工作原理fiq,读Kernel感悟-Linux内核启动-内核的生成 - kernel hacker 修炼之道——李万鹏 - 博客频道 - CSDN...
  6. WORD图片批量居中?
  7. TensorFlow tf.keras.backend.ctc_batch_cost
  8. Qt4: Show an image in your widget – 在Qt里面显示图像
  9. vue中axios访问Java后端跨域问题解决
  10. FTP连接报530错误(FTP Error: 530 User cannot log in, home directory inaccessible)
  11. ios音乐播放器demo
  12. 汽车电子电气架构EEA演变
  13. Solidworks 课程大纲(虎课网)
  14. AD硬件电路学习笔记(一)常见的管脚名字以及FPGA、Lora等常见的物联网组网
  15. Mac MySQL忘记密码解决办法
  16. 云专网和云专线的区别_什么是云网融合?
  17. 五大特色展区抢占C位,2019深圳国际全触与显示展引燃触控显示产业未来
  18. Python自做的一个zabbix_sender程序
  19. 01背包中背包装满和不装满
  20. mysql证书有哪些_mysql证书叫什么

热门文章

  1. 健身与不健身五年后的差别?你可不能轻易忽视!
  2. DBeaver添加SQLserver数据库提示需要下载驱动
  3. 招商银行信用卡中心笔测
  4. 银行刷题记录(招商银行信用卡中心)
  5. 简单解决虚拟机无法连接外网
  6. 解决项目部署到阿里云服务器邮件发送失败的方法
  7. 【云扩RPA】Table
  8. 计算机职称考试科目及内容,计算机职称考试科目有哪些?
  9. 5.3. 虚拟存储管理------页面置换算法
  10. 浅谈单片机、ARM和DSP的异同——非常透彻