Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Warunek różności
Forum PHP.pl > Forum > PHP
Rey
Mam taka oto petle do...while:

  1. do{
  2. $Lotto[6] = draw($freq_sum,$freq_distrib); //funkcje losujące sobie liczby
  3. $Lotto[5] = draw($freq_sum,$freq_distrib);
  4. $Lotto[4] = draw($freq_sum,$freq_distrib);
  5. $Lotto[3] = draw($freq_sum,$freq_distrib);
  6. $Lotto[2] = draw($freq_sum,$freq_distrib);
  7. $Lotto[1] = draw($freq_sum,$freq_distrib);
  8. //echo $Lotto[2]." ".$Lotto[1]." ".abs($Lotto[2]-$Lotto[1])."</br>";
  9. if((abs(max($Lotto[1],$Lotto[2],$Lotto[3],$Lotto[4],$Lotto[5],$Lotto[6])-min($Lotto[1],$Lotto[2],$Lotto[3],$Lotto[4],$Lotto[5],$Lotto[6]))==$spread) && (((((($Lotto[1]!=$Lotto[2])!=$Lotto[3])!=$Lotto[4])!=$Lotto[5])!=$Lotto[6]))){
  10. break;
  11. }
  12. }while(1>0);
  13.  


wiem że troche dziwna ale to nie o nią chodzi smile.gif chodzi o warunek w "if" a dokładniej o jego drugą część znajdującą się po "&&" ( warunek przed && zawsze zostaje poprawnie spełniony):

  1. ((((($Lotto[1]!=$Lotto[2])!=$Lotto[3])!=$Lotto[4])!=$Lotto[5])!=$Lotto[6])


ma sprawdzać, aby wylosowane liczby były różne od siebie. Nie mam pojęcia czemu on nie działa, brakuje mi pomysłu na coś innego, a pisanie wszystkich kombinacji odpada bo zaraz muszę zrobić to samo dla Multi Multi a tam jest 20 losowanych liczb wiec wypisanie ich wszystkich to absurd smile.gif

z góry dzięki za jakakolwiek pomoc!

Fifi209
Nie lepiej użyć array_unique i potem count ?
thek
Kombinujesz jak koń pod górkę...
1. Zrób pustą tablicę.
2. Wylosuj liczbę z zakresu.
3. Sprawdź czy jest w tablicy.
4. Jeśli jest -> losuj ponownie.
5. Jeśli nie -> dodaj do tablicy.
6. Sprawdź czy tablica ma określoną ilość elementów.
7. Jeśli nie -> idź do kroku 2.
8. Jeśli ma określoną ilość -> koniec
Algorytm niezmienny i niezależny czy robimy dla ExpresLotka, DużegoLotka czy MultiLotka. Zmieniają się jedynie: ilość losowanych elementów, zakres elementów.
W skrócie:
  1. function losowanko($ile, $min, $max) {
  2. $tablica = array();
  3. while(count($tablica) < $ile ) {
  4. $losowana = rand($min, $max);
  5. if(!in_array($losowana, $tablica) ) {
  6. $tablica[] = $losowana;
  7. }
  8. }
  9. return $tablica;
  10. }

Mogą być błędy.... Pisałem z palca w ciągu może minutki lub dwóch winksmiley.jpg Ale zasada jest identyczna.

EDIT: Nie wiem czy da się zrobić prościej generator losowań dowolnego systemu Lotkowego. Możesz na końcu jeszcze jedynie to posortować. Ale tak banalnej rzeczy już nie będę Ci pisał, bo to jedna linijka więcej do mojego kodu... Sam sobie już dopisz.
Rey
znalazłem już w międzyczasie sposób z count i array_unique smile.gif ale i tak dziękuje za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.