Eşit bir süre zarfında değerlerini dağıtmak

2 Cevap php

Ben öğelerin bir değişken miktarda, ve ben onları üzerinden dağıtmak için gereken değişken bir tarih aralığı var. Ben 3 öğe var ve ben 6 gün boyunca onları dağıtmak gerekir Diyelim ki. Ne istediğiniz her ikinci gün bir öğe olması ve ilk gün bir öğe ya da varsa farketmez. Ben 6 gün boyunca 7 öğeler olsaydı, günlerden biri bu ya hangi gün fark etmez, 2 ürün almak istiyorum.

Ne yazık ki, ben gerçekten matematikte emmek çıkıyor, bu yüzden oldukça güzel ve hoş bir şekilde bunu yapmak için nasıl gerçek bir fikrim yok, ya da hatta mümkün olup olmadığını. Herhalde bir hacky şekilde anlamaya, ama ben de ondan bir şeyler öğrenmek için umuyorum: P

Kullanılan dili PHP.

2 Cevap

Esasen sen bölünme yapıyoruz ve daha sonra kalan sırayla dağıtmak. Yani adımlar böyle bir şey gidin:

  • gün sayısını saymak
  • öğelerin sayısını

  • öğeler> gün ise

    • divide the number of items by the number of days (items per day) $x
    • take the modulus of items/day $m (this is the remainder)
    • cycle through the days placing $x items on each day, and 1 extra item on the first $m days
  • gün> ürün ise

    • divide the number of days by the number of items (days per item) $x
    • cycle through the days stepping by $x and placing 1 item on each day (keep track of how many items are left)
    • when you arrive past the last day, if there are any items left, loop over the days again starting at day0+1 and stepping by $x

(Günlük öğeleri i) = kat ((i +1) * ürün / gün) - kat (i ürün / gün *), i 0-tabanlı.