Maksimum miktar ve PHP ile bölünmüş setleri hesaplamak için meydan

0 Cevap php

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;

0 Cevap