胡文刚 发表于 2018-7-22 15:41
单精度浮点,随机到0 的概率是 1/2147483648
双色球中奖概率为 1/17720000
前者大概是后者的 1/121 ...
Program Main
real :: a
integer(8) :: i = 0_8 , j
integer(8) :: ddc(38) = 0
call RANDOM_SEED()
do
call RANDOM_NUMBER(a)
j = int(-log10(a)) + 1
ddc(j) = ddc(j) + 1
i = i + 1_8
if( mod(i,100000000_8) == 0_8 ) then
write(*,'("Total:",g0)') i
write(*,'(*(5i16,/))') ddc
write(*,'("check:",g0)') sum(ddc)
end if
end do
read(*,*)
End Program Main
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |