[Losowanie bez powtórzeń] Zadanie domowe
Ostatnio zmodyfikowano 2016-02-05 17:48
Hikamare Temat założony przez niniejszego użytkownika |
[Losowanie bez powtórzeń] Zadanie domowe » 2016-02-01 14:23:31 Mam dosyć proste pytanie odnoszące się do treści zadania: "Napisz program, który wczyta 3 liczby podane przez użytkownika do tablicy, a następnie wylosuje 2 z nich bez powtórzeń. Wynik wypisz na ekran. Postaraj się napisać ten program w oparciu o funkcje. " W jaki sposób mam wylosować te trzy liczby? Jedyne co przychodzi mi do głowy to stworzenie z dwóch skrajnych liczb przedziału, następnie losowanie z tego przedziału tak długo, aż nie trafię na którąś z liczb w tablicy, a potem sprawdzenie, czy przypadkiem ta liczba nie została już wylosowana - ale to brzmi jak droga przez mękę i dla nieokreślonego przedziału może przecież trwać bardzo długo. |
|
hit |
» 2016-02-01 15:50:24 Skoro wczytujesz trzy liczby do tablicy, to losujesz spośród elementów tablicy czyli dokładnie trzech.
http://cpp0x.pl/dokumentacja/standard-C/srand/587 + modulo.
Dodam jeszcze, że nie musisz losować bezpośrednio liczby, a tylko jej pozycję w tablicy. |
|
Rashmistrz |
» 2016-02-02 18:31:44 Losuj indeksy...
Jeszcze prościej jest wylosować tą liczbę, którą nie wypisywać. |
|
bombatom69 |
» 2016-02-05 16:59:38 Jeszcze prościej jest wylosować tą liczbę, którą nie wypisywać.
|
To zależy od tego czy zadanie na to pozwala. Model probabilistyczny jest w takim przypadku inny bo liczby losowane są bez uwzględnienia porządku. |
|
mateczek |
» 2016-02-05 17:48:59 |
|
« 1 » |