[问题] 乱数不随机(已爬文)

楼主: tprucj (陈囧)   2012-10-04 11:43:14
不好意思我是fortran新手
爬了文还是搞不太懂QAQ
我照 http://latinboy.pixnet.net/blog/post/23342072
这篇文章的程式码打
program random_test
implicit none
real*8 :: x(10)
call random_seed()
! call init_random_seed() !<- this line is for GFortran
call random_number(x)
write(*,'(F21.18)') x
end program
SUBROUTINE init_random_seed()
INTEGER :: i, n, clock
INTEGER, ALLOCATABLE :: seed(:)
call RANDOM_SEED(SIZE = n)
ALLOCATE(seed(n))
call SYSTEM_CLOCK(COUNT=clock)
seed = clock - 2047 * (/ (i - 1, i = 1, n) /)
seed = seed * 1103515245 + 2531011
call RANDOM_SEED(PUT = seed)
DEALLOCATE(seed)
END SUBROUTINE
每次执行的乱数还是都一样
到底要改哪里呢
作者: gilocustom   0000-00-00 00:00:00
把注解掉的那行恢复后再试试看。
楼主: tprucj (陈囧)   0000-00-00 00:00:00
换成另一些值 但还是固定的 我用的是fortran 95
作者: gilocustom   0000-00-00 00:00:00
再把call random_seed()注解掉再试试。95是标准之一,95与否无法得知你用的是哪家的编译器。
楼主: tprucj (陈囧)   0000-00-00 00:00:00
还是换一些值 然后是固定的 要怎么看自己的编辑器呢
作者: gilocustom   0000-00-00 00:00:00
假设你的编译指令是f95,试试 f95 -v 或 f95 -V 。
楼主: tprucj (陈囧)   0000-00-00 00:00:00
没看到这个选项耶 我用的编译器好像是Absoft Pro Fortran
作者: gilocustom   0000-00-00 00:00:00
官网上的说明文件有提到"Output Version number(-V)"。这份程式码适度注解后测试OK的: pgf(7.0-4, 8.0-6),g95(0.91),gfortran(4.6.0)。
楼主: tprucj (陈囧)   0000-00-00 00:00:00
还没有用过编译器设定之类的东西 我去研究一下 谢谢你我换了一个编译器后解决这个问题了 谢谢!

Links booklink

Contact Us: admin [ a t ] ucptt.com