![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Muszę losować kilkukrotnie cyfrę 1 z 10, z tym że jedna cyfra po drugiej nie może być taka sama. A liczby muszą być oczywiście losowane z zakresu 1-10. Znalazłem gotowe rozwiązania typu lotto: losuje się jedna liczbę i ona się już więcej w całym losowaniu nie powtórzy. Nie o to mi chodziło. Poniżej proponowane rozwiązanie. Czy (a jeżeli tak, to gdzie) widzicie tu błąd?
Zapomniałem dodać, że liczba (liczby są losowane) ale zdarza się ze po kilka razy jest losowana ta sama liczba Ten post edytował lorenzo 17.05.2012, 00:14:59 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Z braku laku twoje rozwiązanie może być ale posiada pewien minus - jeśli wylosuje się ta sama liczba to jest kolejne losowanie - może się to okazać mało wydajne dla losowania z małego zakresu liczb.
Proponuję użyć: ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 12.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki.
Jest tylko mały problem. Korzystając z drugiego rozwiązania jest prawdopodobieństwo ze będą się powtarzały liczby po shuffle np.: - shuffle mam dwie liczby które nie będa takie same - wykonuje się shuffle - i w tym miejscu może się zdarzyć, że druga liczba z pierwszego shuffle moze być taka sama jak pierwsza z drugiego. Jak to obejść?
jest sens tworzyć następne if(!isset($_SESSION['los1'])), if(!isset($_SESSION['los2'])), ... Ten post edytował lorenzo 17.05.2012, 10:24:46 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ale kombinujesz ;P
Mój przykład działa na pewno tak jak Ci to potrzbne - czyli losuje jedną liczbę, inną niż ta, która była ostatnio w sesji. Z użyciem shuffle musisz dać coś takiego:
-------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:43 |