Reklama
Pokazuje wyniki od 1 do 5 z 5

Temat: [C#] Losowanie losowych liczb bez powtórzeń

  1. #1
    Avatar Dio Paladin
    Data rejestracji
    2007
    Wiek
    30
    Posty
    959
    Siła reputacji
    18

    Domyślny [C#] Losowanie losowych liczb bez powtórzeń

    Jak w tytule, mam problem z losowaniem liczb bez powtórzeń. Samo losowanie rozumiem i umiem, wygląda to u mnie tak:

    Kod :
    Random r = new Random();
    wynik1 = r.Next(1, 49);
    wynik2 = r.Next(1, 49);
    wynik3 = r.Next(1, 49);
    wynik4 = r.Next(1, 49);
    wynik5 = r.Next(1, 49);
    wynik6 = r.Next(1, 49);
    Potem chcę te 6 wylosowanych liczb wprowadzić do TextBlocków:

    Kod :
    TBlock1.Text = wynik1.ToString();
    TBlock2.Text = wynik2.ToString();
    TBlock3.Text = wynik3.ToString();
    TBlock4.Text = wynik4.ToString();
    Tblock5.Text = wynik5.ToString();
    TBlock6.Text = wynik6.ToString();
    I ok, działa fajnie jednak liczby się powtarzają... I tu jest problem, sam za bardzo nie wiem jak napisać od zera algorytm losowania bez powtórzeń, a w internecie znowu jak jest jakiś algorytm to jest on przystosowany do konsoli - nie mam bladego pojęcia jak takie znalezisko przekształcić z wypluwania wyniku do konsoli na takie, które wpisuje kolejno liczby do TextBlocka.
    Ostatnio zmieniony przez Dio Paladin : 16-11-2013, 20:42

  2. #2
    Avatar Absherr
    Data rejestracji
    2008
    Położenie
    Kraków
    Posty
    578
    Siła reputacji
    17

    Domyślny

    Najprościej: wylosowane liczby wkładasz do listy. Ale przed włożeniem sprawdzasz, czy taka liczba już tam jest. Jeżeli jest, to wracasz do losowania, jeżeli jeszcze takiej nie ma to ją wkładasz.
    Coś jak:
    Kod :
    Random r = new Random();
    ArrayList list = new ArrayList();
    while(list.Count != 6) 
    {
        int i = r.Next(1, 49);
        if(list.Contains(i)) 
            continue;
        else    
            list.Add(i);
    }
    TBlock1.Text = list[0].ToString();
    TBlock2.Text = list[1].ToString();
    TBlock3.Text = list[2].ToString();
    TBlock4.Text = list[3].ToString();
    Tblock5.Text = list[4].ToString();
    TBlock6.Text = list[5].ToString();
    Ostatnio zmieniony przez Absherr : 16-11-2013, 20:48

  3. #3
    Avatar Dio Paladin
    Data rejestracji
    2007
    Wiek
    30
    Posty
    959
    Siła reputacji
    18

    Domyślny

    Zmieniłem ArrayList na List<int> ponieważ w aplikacjach Windows Phone ArrayList jest niewspierany, wygląda to tak:

    Kod :
    Random r = new Random();
    List<int> list = new List<int>();
    while(list.Count != 6) 
    {
        int i = r.Next(1, 49);
        if(list.Contains(i)) 
            continue;
        else    
            list.Add(i);
    }
    TBlock1.Text = list[0].ToString();
    TBlock2.Text = list[1].ToString();
    TBlock3.Text = list[2].ToString();
    TBlock4.Text = list[3].ToString();
    Tblock5.Text = list[4].ToString();
    TBlock6.Text = list[5].ToString();
    I działa pięknie. Wielkie dzięki za pomoc i za pokazanie łatwego algorytmu.

    Temat można zamknąć.

  4. Reklama
  5. #4

    Data rejestracji
    2005
    Posty
    257
    Siła reputacji
    20

    Domyślny

    Jest inna opcja - możesz użyć liniowego kongruencyjnego generatora liczb losowych. Widziałem ciekawy przykład tutaj:
    https://svn.nmap.org/nmap/nbase/nbase_rnd.c (ctr+f, wpisz "magic")

  6. #5

    Data rejestracji
    2010
    Posty
    2,657
    Siła reputacji
    17

    Domyślny

    Ide o zaklad ze skoro kolega nie wymyslil czegos tak prostego jak zapisywanie wylosowanych liczb na liscie to uzycie tego algorytmu dla niego graniczyloby z cudem xD

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Konwertowanie liczb - metrologia
    Przez Torg User w dziale Szkoła i nauka
    Odpowiedzi: 6
    Ostatni post: 08-12-2016, 21:08
  2. [algorytm] koło liczb
    Przez Kusterek w dziale Programowanie
    Odpowiedzi: 5
    Ostatni post: 10-01-2014, 12:15
  3. League of Legends Losowanie graczy..
    Przez hucksteR w dziale Inne gry
    Odpowiedzi: 17
    Ostatni post: 14-02-2013, 20:03
  4. Losowanie postaci za sms!!!
    Przez Argoson w dziale Tibia
    Odpowiedzi: 4
    Ostatni post: 29-09-2010, 19:29
  5. Odpowiedzi: 29
    Ostatni post: 08-10-2009, 18:37

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •