Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Podział na grupy
Krzychur
post
Post #1





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.01.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Witam!

Zakładamy, że są 3 liczby naturalne X, Y, Z.

X to ilość elementów w pewnym zbiorze
Y to ilość grup, na które chcemy ten zbiór podzielić
Z to nr grupy, którą chcemy wyświetlić

Dzieląc np. 83 na 5 grup zostanie nam troszkę reszty (3), więc tą trójkę rozkładamy pojedynczo na 3 pierwsze grupy więc powstają nam takie grupy:

1 = od 0 do 16
2 = od 17 do 33
3 = od 34 do 50
4 = od 51 do 66
5 = od 67 do 82

Numery tak naprawdę przedstawiają indexy w tablicach, które tworzone są automatycznie, stąd fakt, że pierwsza grupa zaczyna się zerem, a ostatnia kończy się 82.

Stworzyłem na szybko taką funkcje, która zwraca mi tablicę z odpowiadającymi indexami danej grupy, powiedzcie czy zrobilibyście to zupełnie inaczej, czy... czekam na uwagi.

  1. <?php
  2. function part($count,$groups,$group) {
  3. $min = floor($count / $groups);
  4.  
  5. if ($group <= $count - $min * $groups) {
  6. $to = ($min + 1) * $group;
  7. $from = $to - $min;
  8. }
  9. else {
  10. $from = $count - $min * ($groups - $group + 1) ;
  11. $to = $from + $min;
  12. $from++;
  13. }
  14.  
  15. $array = array();
  16. for ($i = $from; $i <= $to; $i++) {
  17. $array[] = $i - 1;
  18. }
  19.  
  20. return $array;
  21. }
  22. ?>


Pozdrawiam!
Krzysiek
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 12:10