作者dinos (◤◢██◣◥█████)
看板PHP
標題Re: [請益] 如何有效率的產生大筆不重覆的陣列值?
時間Sat Dec 23 15:45:39 2006
※ 引述《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)
推 chhuang:為什麼你答案數都少了? 也沒有按照 alphabetical order 12/25 12:02
推 chhuang:n=3: 120 102 201 201 021 (有重複, 而且正確應該有 6 組) 12/25 12:05