Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> kombinacje i wariacje
kekerott
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 27.12.2004
Skąd: TBG

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


Jak w php (chodzi o algorytm więc nie tylko php) do tablicy zapisac kombinacje k-elementowe ze zbioru n-elementowego.

Nie wpadłem do tej pory na inny pomysł niż losowanie z tablicy (zbioru elementow do losowania) i dopisanie tego elementu do ciągu (a[n]). Potem usunięcie tych samych wartości w tablicy i niby działa. Jednak potrzeba dużej ilości 'prób' by wylosować wszystkie kombinacje.


Tutaj przykład wariacji, ale to taka droga na około.
  1. <?
  2. function make_seed() {
  3. list($usec,$sec) = explode(&#092;" \", microtime());
  4. return ((float)$sec+(float)$usec) * 100000;
  5. }
  6.  
  7. $zbior = array ( &#092;"A\", \"B\", \"C\");
  8. $n = count($zbior);
  9. $k = 3; // wyrazy k-elementowe 
  10.  
  11. for ($i=0; $i<=1000; $i++) // powtorzenie 1000x.
  12.  {
  13. for ($i2=0; $i2<$k; $i2++)
  14.  {
  15. srand(make_seed());
  16. $l = mt_rand(0,$n-1);
  17. $a[$i] .= $zbior[$l];
  18.  }
  19.  }
  20. $a = array_unique($a);
  21.  
  22. print_r($a);
  23. ?>


interesuje mnie algorytm, który będzie podawał dokładnie tyle kombinacji czy wariacji ile wynika ze wzoru. Nie będzie też jak ten powyższy tworzył niepotrzebnych ciągów (zdublowanych).


--------------------
kekerott.info | folio
Go to the top of the page
+Quote Post
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Nie mozesz sobie wygenerowac tablice w ktorej masz po kolei wygenerowana serie danych? Wtedy bedziesz mial wystapienie wszystkich kombinacji.


--------------------
Go to the top of the page
+Quote Post
kekerott
post
Post #3





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 27.12.2004
Skąd: TBG

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


tylko jak wygenerować taką tablicę (bo ja zrobiłem to jakby na około) blink.gif


--------------------
kekerott.info | folio
Go to the top of the page
+Quote Post
DeyV
post
Post #4





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




jeśli pracujesz w php5, co przydatny może być dla Ciebie temat:
http://forum.php.pl/index.php?showtopic=25997


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 01:33