Losowanie 6 liczb z 49 bez powtórzeń

Losowanie 6 liczb z 49 bez powtórzeń
G0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

Zna ktoś prosty sposób żeby sprawdzić w tym przypadku w funkcji "if" czy wylosowane wcześniej liczba była wylosowana wcześniej?

Kopiuj
 
            int[] tab = new int[6];
            Random gen=new Random();

            Console.WriteLine("Wynik LOTTO: ");
            int i= 0;
            while (i < 6)
            {
                int wylosowana_liczba = gen.Next(1, 49); 
                if (wylosowana_liczba != "liczby wylosowane wcześniej w tablicy" ) 
                {
                    tab[i] = wylosowana_liczba;
                    i++;
                }
            }
            for (i = 0; i < 6; i++)
                Console.Write(tab[i]+ " ");         
            Console.ReadLine();
szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
1

Może użyj listy a do sprawdzania metody Contains.
http://msdn.microsoft.com/en-us/library/bhkz42b3%28v=vs.110%29.aspx

G0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 11
0

Rozwiązanie

Kopiuj
 
            int[] tab = new int[6];
            Random gen=new Random();

            Console.WriteLine("Wynik LOTTO: ");
            int i= 0;
            while (i < 6)
            {
                int numerek = gen.Next(1, 49);
                if (tab.Contains(numerek) == false) 
                {
                    tab[i] = numerek;
                    i++;
                }
            }
            for (i = 0; i < 6; i++)
                Console.Write(tab[i]+ " ");         
            Console.ReadLine();
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
0

@greg07, to bardzo złe rozwiązanie, już lepiej:

Kopiuj
            for(int i=0;i<6;++i)
            {
                int val=gen.Next(1, 49-i);
                for(int k=0;k<i;++k) if(tab[k]>=val) ++val;
                tab[i]=val;
            }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.