สวัสดีครับ ขอคำแนะนำเกี่ยวกับ code ตัวนี้หน่อยครับ ทำยังไงให้สามารถรัน array A - J หรือมากกว่า J K L M N ขึ้นไปได้ไวบ้างไหมครับ
สวัสดีครับ ขอคำแนะนำเกี่ยวกับ code ตัวนี้หน่อยครับ ทำยังไงให้สามารถรัน array A - J หรือมากกว่า J K L M N ขึ้นไปได้ไวบ้างไหมครับ
สามารถ รัน A B C D E F ได้ปกติเพราะจำนวนไม่มาก พอมากขึ้นทำให้รันได้ช้ามากครับ 9 ตัวใช้เวลาเกือบ ๆ วันเลยครับ
ขอบคุณครับ
Code (PHP)
<?php
function digit($c){
$rs=array(); $idx=pow($c,$c);
for($i=0; $i < $idx; $i++){
$t=''; $n=$i;
do{ $x = $n % $c; $n = floor($n / $c); $t = $x.$t;}while($n);
$u=array_unique(str_split($t=str_pad($t, $c, '0', STR_PAD_LEFT)));
if(count($u)==$c) $rs[]=$t;
}
return $rs;
}
$error = ''; $rs_num = array();
if(isset($_POST['key'])){
$c = count($_POST['key']);
if(count(array_unique($_POST['key'])) != $c){
$error = 'Duplicate key';
}else{
$rs=digit($c);
foreach($rs as $k=>$v){
$z=str_split($v); $rs_num[$k]='';
foreach($z as $n) $rs_num[$k] = $_POST['key'][$n] . $rs_num[$k];
}
sort($rs_num);
}
}
?>
<!doctype html>
<html>
<body>
<?=(count($rs_num)? 'result: <pre>'.implode('<br>',$rs_num).'</pre>' : '')?>
<?=($error? "Error: ".$error : '')?>
<form method="post" >
<?php
$key = array('A','B','C','D','E','F','G','H','I','J');
foreach ($key as $value) {
echo '<input name="key[]" type="hidden" value="'.$value.'">';
}
?>
<button>Excute</button>
</form>
</body>
</html>
จาก Forum ที่แล้วที่คุณ Chaidhanan ได้ให้ code มา
https://www.thaicreate.com/php/forum/078339.html Tag : PHP, HTML/CSS
Date :
2017-03-26 15:01:03
By :
xeus
View :
833
Reply :
5
ดูค่าของจำนวน Array นะครับ ว่ากี่ array จะต้องประมวลผลกี่ครั้ง
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = 479001600
13! = 6227020800
14! = 87178291200
15! = 1307674368000
16! = 20922789888000
อย่าง A-H มีสมาชิก array 8 ตัว ต้องประมวลผลถึง 40320 ครั้ง ในการจอง Array ครับผม
ถ้า 9 ตัว ก็ปาไปสามแสนหกกว่าๆ ครับ แค่เพิ่มสมาชิก Array ไปแค่ตัวเดียว
ดังนั้นก็ไม่แปลกแล้วนะครับ ว่าถ้าเพิ่มจำนวนตัว Array เข้าไปแค่ตัวสองตัว ทำไมมันช้าเป็นวัน
เพราะท่านกำลังทำงานกับสมาชิก array เป็นแปดหมื่นล้าน เลย
REF ..http://progopedia.com/example/factorial/ อยากให้อ่านครับ
Date :
2017-03-29 06:26:11
By :
deawx
เฟี้ยวไม่ฟ้าวเท่าคุณวีดอกเด้อครับ ผมแก่แล้วววววววววววว
ประวัติการแก้ไข 2017-03-29 07:51:42
Date :
2017-03-29 07:51:12
By :
deawx
คารวะ...เทพทั้งคู่
Date :
2017-03-29 08:53:50
By :
apisitp
ขอบคุณสำหรับแนวทางทั้งหมดครับ
Date :
2017-03-29 15:16:22
By :
xeus
Load balance : Server 01