rand()-powtarzaja sie

0

da sie zrobic tak zeby liczby losowe nie powtarzaly sie jak tak to jak?

0

Nie da się, bo są losowe ;]
Możesz sprawdzać czy ci się powtórzyła i losować jeszcze raz, innej metody nie ma.

0

w jaki sposob?

0

Wrzucaj do seta każdą wylosowaną liczbę. Jeżeli chcesz jakaś wylosować to losujesz dopóki nie trafi Ci się taka której nie ma w secie.

0
#include <set>
#include <iostream>
#include <cstdlib>

using namespace std;
set<int> S;
int losuj(int zakres)
{
int los=-1;
while(S.find(los) !=S.end())
        los = rand()%zakres;
S.insert(los);
return los;
}

int main()
{
    S.insert(-1);
    int zakres,liczba;
    cin >> zakres >> liczba;
    srand(time(NULL));
    if(!(liczba > zakres))
    for(int i=0;i<liczba;++i)
            cout << losuj(zakres) << endl;

    return 0;
}
0

nie dziala :/

0

To podaj może czemu nie działa? Błąd kompilacji, czy źle się wykonuje?

0

urochomi sie i wczytuje pierwsza liczbe, druga i koniec.. wylacza mi sie..

0

Pewnie ci się okno zamyka. Sorry, ale to jakby podstawy... uruchamiaj spod konsoli, albo dodaj getch() na końcu..

0

co prawda to dopiero sie ucze.. ale bez przesady wiem jak zatrzymac program ale i tak nic nie wyswietla sie..

0

A mi magicznie działa. Zauważ, że pierwsza wprowadzona liczba ma być większa lub równa drugiej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1