Re: [請益] 如何有效率的產生大筆不重覆的陣列值?

看板PHP作者 (◤◢██◣◥█████)時間19年前 (2006/12/23 15:43), 編輯推噓2(200)
留言2則, 1人參與, 最新討論串3/3 (看更多)
※ 引述《saininniang (sob)》之銘言: : : 推 chhuang:permutation 12/21 22:36 : 我用recursive寫permutation : 要跑8!= 40320次 : 跑了15分鐘還沒跑完@@ : 比我原本直接用for跑8^8=1600萬次還慢很多 : recursive跑n=6以下,答案一下就出來了 : 但n=7時,就有點慢了 : n=8則是15分鐘都還沒執行完 <?php $n=5; $a=array(); for($i=0;$i<$n;$i++){ $a[$i]=$i+1; } for($i=$n-1;$i>0;$i--){ for($j=$i;$j>=0;$j--){ $a[$i]=$a[$i]+$a[$j]; $a[$j]=$a[$i]-$a[$j]; $a[$i]=$a[$i]-$a[$j]; print_r($a); } } ?> 試了一下 n=50: 0.10664010047913 sec n=60: 0.18252801895142 sec n=100: 0.84918808937073 sec -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.158.15 ※ 編輯: dinos 來自: 140.113.158.15 (12/23 15:45) ※ 編輯: dinos 來自: 140.113.158.15 (12/23 19:43)

12/25 12:02, , 1F
為什麼你答案數都少了? 也沒有按照 alphabetical order
12/25 12:02, 1F

12/25 12:05, , 2F
n=3: 120 102 201 201 021 (有重複, 而且正確應該有 6 組)
12/25 12:05, 2F
文章代碼(AID): #15ZDuE8f (PHP)
文章代碼(AID): #15ZDuE8f (PHP)