Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zbyt wolny skrypt losowania
-emzetka-
post
Post #1





Goście







Witam. Mam problem ze skryptem losowania. Zrobiłem można powiedzieć "pseudo kod", bo na pewno nie jest to tak jak ma być. Chodzi mi mianowicie o wylosowanie trzech liczb z danego przedziału przy czym żadna z nich nie może być taka sama jak pozostałe. Dane powinny być zamieszczone w tablicy. Mi osobiście udało się to, bo kod działa, jednak nie wiem czemu, ale zależy na jakim serwerze. Na jednym jest wszystko ok, a na innym strona wczytuję się strasznie długo (biały ekran) aż wyświetla się błąd, że za długo musiał oczekiwać w jednej z linii kodu losowania.

Bardzo proszę o podpowiedź jak to powinno wyglądać aby działało szybko i nie sprawiało żadnych problemów ?
Oto kod:
  1. function losuj()
  2. {
  3. $randnum[0] = mt_rand(0, $this->numberofr);
  4.  
  5. do{
  6. $randnum[1] = mt_rand(0, $this->numberofr);
  7. }while($randnum[0] == $randnum[1]);
  8.  
  9. do{
  10. $randnum[2] = mt_rand(0, $this->numberofr);
  11. }while($randnum[2] == $randnum[1] || $randnum[0] == $randnum[2]);
  12.  
  13. return $randnum;
  14. }


Z góry dziękuję za odpowiedzi, pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyggmunt
post
Post #2





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 28.04.2009

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


No właśnie problem jest taki, że ja już zmieniłem skrypt losowania na:
Kod
function losuj()
{
$numbers = range(3, $this->numberofr);
shuffle($numbers);
return array_slice ($numbers,0,3);
}


I widać zmianę, ponieważ teraz strona się wczytuje, ale pojawiają się błędy takie jak podałem wyżej. Dziwne, że gdy stronę się odświeży, to już działa normalnie.

Ten post edytował Zyggmunt 3.06.2011, 08:27:23
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: 14.10.2025 - 01:27