Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript] Losowa liczba z wykluczeniem wybranych liczb
-zimix-
post
Post #1





Goście







Witam
Mam problem, nie moge sobie poradzic wykonac instrukcji do wygenerowania losowej liczby z wykluczeniem wybranych liczb.
Znam ideea nie moge jej zastosowac. Trzeba jakos sporzadzic instrukcje sprawdzajaca czy wylosowana liczba nie jest np. elementem tablicy wykluczonych liczb po czym jesli nie jest to ok jesli jest to nastepuje kolejne losowanie az do skutku... Jak to zapisac?

Moje aktualne wypociny (dzialaja jedynie gdy w tablicy "c" jest jedna wartosc - choc to moze zbiegokolicznosci ze dziala)...:

  1. <div id="ppp"></div>
  2. var n=document.getElementById('ppp');
  3. //var x=Math.round(Math.random()*8);
  4. var c=[3,7,8]; // liczby wykluczone
  5. n.innerHTML=losowaZwykluczeniem(c);
  6.  
  7. function losowaZwykluczeniem(tablicaWykluczonych)
  8. {
  9. var x=Math.round(Math.random()*8);
  10. for(var i=0;i<tablicaWykluczonych.length;i++)
  11. {
  12. if(tablicaWykluczonych[i]!=x)
  13. {
  14. return x;
  15. }
  16. else
  17. {
  18. x=Math.round(Math.random()*8);
  19. }
  20. }
  21. return x;
  22. }
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kamil4u
post
Post #2





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


Jest coś takiego jak continue. Jeszcze będziesz musiał od zmiennej "i" odjąć jeden.
Go to the top of the page
+Quote Post
Pawel_W
post
Post #3





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


Cytat(kamil4u @ 2.01.2013, 20:29:56 ) *
Jest coś takiego jak continue. Jeszcze będziesz musiał od zmiennej "i" odjąć jeden.

to jest podejście bardzo naokoło, można przecież tak:
  1. do {
  2. // losowanie liczby
  3. // sprawdzanie, czy należy do tablicy zakazanych liczb
  4. // jeżeli tak to unique=false i przerywamy petle
  5. } while (!unique)
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: 12.10.2025 - 14:30