Fortran Coder

查看: 18131|回复: 5
打印 上一主题 下一主题

[求助] 有没有简单方式实现类似python random.choice的方式,谢谢,谢谢

[复制链接]

54

帖子

0

主题

0

精华

实习版主

F 币
653 元
贡献
214 点

元老勋章新人勋章

QQ
楼主
发表于 2021-1-12 14:59:27 | 显示全部楼层
本帖最后由 布衣龙共 于 2021-1-12 15:04 编辑

[Fortran] 纯文本查看 复制代码
Module random_choice_FYS
  implicit none
  integer,parameter,private :: kq = 4
contains

  Subroutine choice_FYS(x,y)
    Integer :: x(:)
    Integer,intent(INOUT) :: y(:)
    integer  :: m , p , j
    real(kq) :: KK
    m = size(x)
    Do j = 1 , size(y)
      call random_number(KK)
      p=Int(KK*M)+1
      if (p < m) x([p,m]) = x([m,p])
      y(j) = x(m)
      m = m - 1
    End Do
  End subroutine choice_FYS

End Module random_choice_FYS

Program Main
  use random_choice_FYS
  integer :: x(6) = [1,2,3,4,5,6]
  integer :: y(3)
  call random_seed()
  call choice_FYS(x,y)
  write(*,*) y
  write(*,*) x
End Program Main


您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-2 15:48

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表