Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Losowanie bez powtórzeń] Zadanie domowe

Ostatnio zmodyfikowano 2016-02-05 17:48
Autor Wiadomość
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.
P-144297
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.
P-144300
Rashmistrz
» 2016-02-02 18:31:44
Losuj indeksy...

Jeszcze prościej jest wylosować
tą liczbę, którą nie wypisywać.
P-144350
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.
P-144514
mateczek
» 2016-02-05 17:48:59
P-144518
« 1 »
  Strona 1 z 1