Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> 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).
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
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) (IMG:http://forum.php.pl/style_emoticons/default/blink.gif)
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
Go to the top of the page
+Quote Post

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: 22.08.2025 - 11:58