Ben sadece herhangi bir zamanda 2 öğe maksimum dizi olabilir iki öğe, A ve B var. Bu, aşağıdaki kombinasyonlar ile sonuçlanır:
A B
1 0
2 0
0 1
0 2
1 1
Eğer 3 veya daha fazla öğe istiyorsanız, kalanlar yeni bir dizi içine yayılabilir. 2 setleri bir dizi tek öğeler üzerinde tercih edilir. Örnekler:
- 2 0 0 1 OR 1 1, 1 0
: A 2 çok ve B 1 lot (toplam 3 ürün) 2 set olacak - A 3 lot ve B 4 lot (toplam 7 ürün) 4 set olacaktır: 2 0, 1 0, 0 2 0 2 YA DA 1 1, 1 1, 1 1, 0 1 ...
Ne PHP kodu hesaplamak için en verimli olacaktır:
- Her sette Birleşmeleri
- Set sayısı
- Setleri tüm varyasyonları
Sample:
//input
$a = 2;
$b = 1;
$totalItems = $a + $b;
$totalSets = ceil($totalItems/2);
$maxPerSet = 2;
//split into sets of $maxPerSet
for($i = 0; $i < $totalSets; $i ++) {
//calculate combinations of $a and $b
//? code goes here...
if($a >= $maxPerSet){
$setA = $maxPerSet; $setB = 0; $a = $a - $maxPerSet;
} else if($b >= $maxPerSet){
$setB = $maxPerSet; $setA = 0; $b = $b - $maxPerSet;
} else {
if($a + $b > $maxPerSet){
$setA = $a;
$setB = $b - ($a-$maxPerSet); //not right!
$a = 0;
} else {
$setA = $a; $a = 0; $setB = $b; $b = 0;
}
}
//add to array of sets
$sets[$i] = "$setA $setB";
}
//ouput
print_r $sets;