我必须为给定数组找到所有没有重复的组合(nCr)。例如,如果数组=位置=(/ 1,2,3,4,5 /),并且我想找到3的组合(这里,r = 3),则所有的组合是: (1 2 3; 1 2 4; 1 2 5; 1 3 4; 1 3 5; 1 4 5; 2 3 4; 2 3 5; 2 4 5; 3 4 5)通用计算机代码查找组合,无需重复
我问题是将这个过程概括为r的任何值。根据我当前的代码, ,for循环的数量随着r的增加而增加。 有没有可能用fortran将这个过程推广到任何r?
我为R = 3
program combinations
integer i,j,k,l
integer loc1,loc2,loc3
integer, dimension(5) ::positions
positions = (/ 1, 2, 3, 4, 5/)
do i =1,5
loc1 = positions(i)
do j =1,5
if (j .gt. i) then
loc2 = positions(j)
do k=1,5
if (k .gt. j) then
loc3 = positions(k)
write(*,*) loc1,loc2,loc3
endif
enddo
endif
enddo
enddo
end program
`
除了标签之外,还有其他的python吗? – 2015-02-10 12:04:13
Python [组合](https://docs.python.org/2/library/itertools.html#itertools.combinations)函数文档包含通用的python算法。 – Slam 2015-02-10 12:11:36
删除Python标记?你只想在Fortran中使用它? – thiruvenkadam 2015-02-10 12:13:08