【发布时间】:2018-03-03 10:28:59
【问题描述】:
我在 Fortran 中编写了一个 Knuth shuffle,如下所示
subroutine knuth_shuffle(array, length)
implicit none
integer :: length
integer :: array(length)
integer :: randomIndex
integer :: temp
do i = 1, length - 2
randomIndex = floor(randomBetween(real(i), real(length)))
temp = array(i)
array(i) = array(randomIndex)
array(randomIndex) = temp
enddo
end subroutine knuth_shuffle
每次调用子程序时,我也必须输入数组长度。
call knuth_shuffle(A, size(A))
有没有办法可以改变子程序,所以当我调用它时,它看起来更像:
call knuth_shuffle(A)
【问题讨论】:
-
@Yossarian,请不要在不查看可能需要改进的帖子内容的情况下进行大量编辑以删除标签。
标签: fortran