我必須爲給定數組找到所有沒有重複的組合(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