24小时热门版块排行榜    

查看: 159  |  回复: 0
当前主题已经存档。

buddy_84

铜虫 (小有名气)

[交流] 随机数发生器(Fortran77编写的,测试可用)

real function ranw(idum)
      Parameter (Mbig=2**30-2, Xinvers=1./Mbig)
      data ibit/ 1/
      Integer IX(55)
      save
      if (ibit.ne.0) then
         ibit=0
cc
cc       fill up the vector ix with some random integers, which are
cc       not all even
cc      
         if (idum.eq.0) pause 'use nonzero value of idum'
         idum=abs(mod(idum,Mbig))
         ibit=0
         Ix(1)=871871
         Do i=2,55
            Ix(i)=mod(Ix(i-1)+idum,Ix(i-1))
            Ix(i)=max(mod(Ix(i),Mbig),idum)
         end do
         j=24
         k=55
cc
cc       warm up the generator     
cc
         do i=1,1258
            Ix(k)=mod(Ix(k)+Ix(j),Mbig)
            j=j-1
            if (j.eq.0) j=55
            k=k-1
            if (k.eq.0) k=55
         end do
      end if
cc
cc    this is where execution usually starts:
cc
      Ix(k)=mod(Ix(k)+Ix(j),Mbig)
      j=j-1
      if (j.eq.0) j=55
      k=k-1
      if (k.eq.0) k=55
      ranw=Ix(k)*Xinvers
      end
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 buddy_84 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见