• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak wstawic losowanie bez powtorzen do gry z funkcja switch

Mały hosting, OGROMNE możliwości
0 głosów
381 wizyt
pytanie zadane 1 lutego 2016 w C i C++ przez michalnt Użytkownik (520 p.)

 

Chce wstawic funkcje ktora pozbedzie sie bledu ktory polegal na losowania tych samych liczb do komendy switch.

https://gist.github.com/michalnt98/f66789261ce87ac2f43c

2 odpowiedzi

+3 głosów
odpowiedź 2 lutego 2016 przez pietrzakacper Mądrala (7,480 p.)
wybrane 4 lutego 2016 przez michalnt
 
Najlepsza
Mało wydajne to rozwiązanie kolegi wyżej.

http://cpp0x.pl/dokumentacja/standard-C++/vector/819

Lepiej użyć std::vector i losować indeks tablicy wypełnionej liczbami z których chcesz losować, a po wylosowaniu zamienić element wylosowany z ostatnim i go usunąć za pomocą pop_back(). Zauważ, że w między czasie zmniejsza się wielkość tablicy, więc musisz losować z przedziału < 0, rozmiar_tablicy ).

Tym sposobem będziesz losował dokładnie tyle razy ile potrzebujesz.
+1 głos
odpowiedź 1 lutego 2016 przez jpacanowski VIP (101,940 p.)
Zrób tablicę o wielkości takiej, jak ilość liczb, które losujesz. Po wylosowaniu liczby sprawdź, czy nie ma jej w tablicy. Jeżeli nie ma to ją tam zapisz, jeżeli jest to losuj jeszcze raz.

Podobne pytania

0 głosów
2 odpowiedzi 1,029 wizyt
pytanie zadane 11 września 2015 w C i C++ przez balti Obywatel (1,040 p.)
0 głosów
1 odpowiedź 295 wizyt
pytanie zadane 15 marca 2020 w C i C++ przez _Shadow_ Nowicjusz (150 p.)
0 głosów
2 odpowiedzi 294 wizyt
pytanie zadane 24 maja 2016 w JavaScript przez Adam Jakś Dyskutant (8,940 p.)

93,718 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,263 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...