有N個人  N>=5  都要入場去三家店購物
入場時抽籤決定順序,要怎麼樣設計抽籤法 讓每個人三家店購物的順序之和相同?
例:
      A店  B店  C店  和
   甲  4    3    2    9
   乙  1    4    4    9
   丙  3    5    1    9
   丁  2    2    5    9
   戊  5    1    3    9
以下提供別人寫好的解法,但是我完全不懂為什麼...
先隨機決定A的順序(customers[i].A)
var count = customers.length;
var half = (count % 2) ? count / 2 ; (count-1) / 2;
foreach(customers as customer){
  if(count % 2 == 0){
    if(customer.A <= half){
      customer.B = count - 2 * (customer.B-1);
      customer.C = customer.A + half;
    }else{
      customer.B = count - 1 - 2*(customer.A - half -1);
      customer.C = customer.A - half;
    }
  }else{
    if(customer.A <= half){
      customer.B = count -1 - 2 * (customer.A -1);
      customer.C = customer.A + half +1;
    }else{
      customer.B = count - 2 * (customer.A - (count + 1) / 2)
      customer.C = customer.A - half;
    }
  }
}
希望有板友能稍作解釋
謝謝大家...