Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> petla while, nie powtarzalnosc liczb
marco222
post 13.09.2010, 00:09:10
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 12.09.2010

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


Witam
probuje zrobic program lotto:) na 6 numerkow i mam problem z wygenerowaniem takich liczb dla ilosci zakladow by kazdy zaklad 6ciu liczb roznil sie 3-ma liczbami. Prubuje cos takiego ale cos w tym jest nie tak;

  1. $t_klasyfikuj=array(11,12,13,14,14,14,14,14,14,14,15,15,15,16,16,16,17,18,19);//,18,18,18,18,19,19,20,21,22,22,23,24,27);
  2.  
  3. for($z=0; $z<=2; $z++)
  4. {
  5.  
  6. $l_losowa[$z] = array_rand($t_klasyfikuj,6);
  7. for($d=1; $d<=6; $d++)
  8. $t_losuj[$z][$d]=$t_klasyfikuj[$l_losowa[$z][$d-1]];
  9. }
  10.  
  11. $war=array();
  12. $war2=0;
  13.  
  14. for($z=0; $z<=2; $z++)
  15. {
  16.  
  17. do //powtarzaj poki kazde 6 liczb bedzie roznila sie 3 liczbami
  18. {
  19. for($z1=0; $z1<=2; $z1++)
  20. {
  21. for($d=1; $d<=6; $d++)
  22. {
  23. if ($t_losuj[$z][$d]==$t_losuj[$z1][1] or $t_losuj[$z][$d]==$t_losuj[$z1][2] or $t_losuj[$z][$d]==$t_losuj[$z1][3] or $t_losuj[$z][$d]==$t_losuj[$z1][4] or $t_losuj[$z][$d]==$t_losuj[$z1][5] or $t_losuj[$z][$d]==$t_losuj[$z1][6])
  24. {
  25. ++$war[$z1];
  26. }
  27. }
  28.  
  29. if ($war[$z1]>=3)
  30. {
  31. $war2=0;
  32. $l_losowa[$z] = array_rand($t_klasyfikuj,6);
  33. for($d=1; $d<=6; $d++)
  34. $t_losuj[$z][$d]=$t_klasyfikuj[$l_losowa[$z][$d-1]];
  35. }
  36. else
  37. {
  38. ++$war2;
  39. }
  40. }
  41. }
  42.  
  43. while(
  44. $t_losuj[$z][1]==$t_losuj[$z][2] or $t_losuj[$z][1]==$t_losuj[$z][3] or $t_losuj[$z][1]==$t_losuj[$z][4] or $t_losuj[$z][1]==$t_losuj[$z][5] or $t_losuj[$z][1]==$t_losuj[$z][6] or
  45. $t_losuj[$z][2]==$t_losuj[$z][1] or $t_losuj[$z][2]==$t_losuj[$z][3] or $t_losuj[$z][2]==$t_losuj[$z][4] or $t_losuj[$z][2]==$t_losuj[$z][5] or $t_losuj[$z][2]==$t_losuj[$z][6] or
  46. $t_losuj[$z][3]==$t_losuj[$z][1] or $t_losuj[$z][3]==$t_losuj[$z][2] or $t_losuj[$z][3]==$t_losuj[$z][4] or $t_losuj[$z][3]==$t_losuj[$z][5] or $t_losuj[$z][3]==$t_losuj[$z][6] or
  47. $t_losuj[$z][4]==$t_losuj[$z][1] or $t_losuj[$z][4]==$t_losuj[$z][2] or $t_losuj[$z][4]==$t_losuj[$z][3] or $t_losuj[$z][4]==$t_losuj[$z][5] or $t_losuj[$z][4]==$t_losuj[$z][6] or
  48. $t_losuj[$z][5]==$t_losuj[$z][1] or $t_losuj[$z][5]==$t_losuj[$z][2] or $t_losuj[$z][5]==$t_losuj[$z][3] or $t_losuj[$z][5]==$t_losuj[$z][4] or $t_losuj[$z][5]==$t_losuj[$z][6] or
  49. $t_losuj[$z][6]==$t_losuj[$z][1] or $t_losuj[$z][6]==$t_losuj[$z][2] or $t_losuj[$z][6]==$t_losuj[$z][3] or $t_losuj[$z][6]==$t_losuj[$z][4] or $t_losuj[$z][6]==$t_losuj[$z][5]
  50. and $war2<2);
  51.  
  52. sort($t_losuj[$z]);
  53. }
  54.  
  55.  
  56.  
  57.  


Dzieki
Go to the top of the page
+Quote Post
borec
post 13.09.2010, 09:50:25
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 0
Dołączył: 18.07.2003
Skąd: Tarnów

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


Poczytaj o array_diff, a jeśli nic Ci nie zaświeci:
  1. if (count(array_diff($zaklad1, $zaklad2)) >= 3) {
  2. # zakłady różnią się conajmniej trzema liczbami
  3. }


--------------------
Gentoo Linux 64bit / PHP 5.2 / MySQL 5.1
-> Administracja serwerami Linux i FreeBSD
Go to the top of the page
+Quote Post
marco222
post 13.09.2010, 17:51:17
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 12.09.2010

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


Dziekuje za pomoc, wogole nie bralem cos takiego pod uwage, udalo sie i dzieki.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 02:07