24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3021  |  回复: 14
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

贺仪

铁杆木虫 (著名写手)

[求助] fortran 随机数 每次运行都是一样的!

如题 fortran 随机数 每次运行都是一样的!
call random_seed ()
call random_number (rd);
由于计算的时间很短,运行起来每次还是一样的!
大家怎么忙解决?
回复此楼
嘟啦啦嘟啦啦嘟
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

★ ★
微尘、梦想(金币+2): 2011-09-07 12:04:14
参考一下下面的程序,后面那个子程序抄自 gfortran 的帮助文件。
CODE:
program test
   real :: r
   
!  call random_seed()
   call init_random_seed()
   
   do i=1,10
      call random_number(r)
      write(*,*) r
   end do
   
end program test

subroutine init_random_seed()
   integer :: i, n, clock
   integer, dimension(:), allocatable :: seed
   
   call random_seed(size = n)
   allocate(seed(n))
   
   call system_clock(count=clock)
   
   seed = clock + 37 * (/ (i - 1, i = 1, n) /)
   call random_seed(put = seed)
   
   deallocate(seed)
end subroutine init_random_seed

9楼2011-09-05 21:42:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖

贺仪(金币+5): 多谢你的热心帮助 2011-09-05 19:42:11
每次都一样是什么意思?同一个程序,每次运行结果当然应该是一样的啊……
2楼2011-09-04 14:56:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

贺仪

铁杆木虫 (著名写手)

引用回帖:
2楼: Originally posted by snoopyzhao at 2011-09-04 14:56:30:
每次都一样是什么意思?同一个程序,每次运行结果当然应该是一样的啊……

但我是个随机过程 就不应该一样的 。我用matlab得到的是不同的,但是用fortran得到的就是相同的。在取种子的时候seed取时间能不能精确到毫秒呢?要能到就可以了
嘟啦啦嘟啦啦嘟
3楼2011-09-04 15:07:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

snoopyzhao

至尊木虫 (职业作家)

【答案】应助回帖


xzhdty(金币+1): 欢迎常来程序语言看看 2011-09-05 06:52:00
引用回帖:
3楼: Originally posted by 贺仪 at 2011-09-04 15:07:58:
但我是个随机过程 就不应该一样的 。我用matlab得到的是不同的,但是用fortran得到的就是相同的。在取种子的时候seed取时间能不能精确到毫秒呢?要能到就可以了

你的意思是,你在程序中取了很多随机数,然后,随机数是一样的吗?

另外,种子与时间有啥关系?你以时间作种吗?

给段代码看看吧……
4楼2011-09-04 15:29:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见