作者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)
1F:推 chhuang:为什麽你答案数都少了? 也没有按照 alphabetical order 12/25 12:02
2F:推 chhuang:n=3: 120 102 201 201 021 (有重复, 而且正确应该有 6 组) 12/25 12:05