作业帮 > 综合 > 作业

fortran程序如何列出一组数据所有的排列可能.比如:1,5,8,9,11如何列出他们所有排列的可能

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/12 19:42:43
fortran程序如何列出一组数据所有的排列可能.比如:1,5,8,9,11如何列出他们所有排列的可能
!有一个很笨的方法
implicit none
integer::n(5),n2=0
integer::i1,i2,i3,i4,i5
n(1:5) = (/1,5,8,9,11/)
do i1=1,5; do i2=1,5; if(i1==i2) cycle
do i3=1,5; if(i3==i1.or.i3==i2) cycle
do i4=1,5; if(i4==i1.or.i4==i2.or.i4==i3) cycle
do i5=1,5; if(i5==i1.or.i5==i2.or.i5==i3.or.i5==i4) cycle
write(*,'(5i3)') n(i1),n(i2),n(i3),n(i4),n(i5)
n2=n2+1
enddo; enddo; enddo; enddo; enddo
write(*,'(5i3)') n2
end
再问: 如果是有n数字呢?n我由指定。我也不能定义n个i啊。
再答: 总之是一个全取排列的问题,办法再想吧。