下面的代碼生成N
整數隨機數的數組,並將結果存儲在random_int_array
如何獲得隨機數的數組中的Fortran
N=20
allocate(array(N/2))
call random_seed
call random_number(array)
random_int_array=int(array*N)
的問題是,我可能會在random_int_array
和我不產生重複我不想那樣。我怎樣才能從這個數組中刪除重複,或者相當於如何生成一組唯一的隨機數?
注意array
具有尺寸N/2。所以,問題基本上是抽取N/2號,沒有重複,出N.
而最簡單可行的方法,在這裏你直接跳過重複,是不是不夠好? (從random_int_array1移動項目的random_int_array2如果他們不已經是第二陣列中) – 2012-03-26 15:57:42
就足夠了,但我需要一個聰明的方式找到重複和擺脫他們。 – Brian 2012-03-28 07:59:12
沒關係,我找到了這個網頁真的是我的問題非常有用:http://rosettacode.org/wiki/Remove_duplicate_elements#Fortran – Brian 2012-03-28 08:09:20