Generisanje random broja bez ponavljanja dva susedna

Generisanje random broja bez ponavljanja dva susedna

offline
  • Pridružio: 10 Mar 2009
  • Poruke: 101
  • Gde živiš: Podgorica

Pokusavam da mi program generise 14 brojeva od 1 do 14..
E sad dva broja jedan do drugog ne smiju biti ista.

ovo je okej niz:
5 6 8 12 4 8 7 1 3 13 5 14 3 5 (jedan broj moze da se ponovi vise puta)

ovaj niz ne valja:
4 8 7 2 6 1 [12 12] 7 5 4 6 14 13 (te dvije 12-ice ne smiju da budu jedna do druge)

e sad ja generisem radnom brojeve
for(i=0; i<14; i++) {    srand(time(NULL));    x=rand()%14+1;    printf("%d ", x);     }
Ne znam kako da generisem brojeve a da susedni brojevi ne budu isti... ? probao sam da stavim sleep(1) ali opet se desava, ali ne tako cesto.
Od 1000 generisanih brojeva, u svih 1000 dva susedna broja ne smiju biti ista.
Nadam se da shvatate sta mislim.

EDID: Uspio sam da resim problem. Moderator moze slobodno da izbrisetemu, a moze i da je ostavi, ako slucajno neko drugi zapne pa da moze da pogleda.

srand(time(NULL)); for(i=0; i<14; i++) {   sleep(1);   x=rand()%14+1;   broj[i]=x;   if(broj[i-1] == x) ako je prethodni broj (broj[i-1]) jednak novom generisanom broju x tada:   {     x = x - 2;     if(x == 0) x = x+3; // Nekad ce se dobiti 0 ako se nadju dvije dvojke jedna do druge, brojevi treba da budu u intervalu [1, 14]     if(x == -1) x = x+6; // Nekad ce se dobiti -1 ako se nadju dvije jedinice jedna do druge, interval brojeva mora da bude[1, 14]     broj[i]=x;     }    printf("%d  ", broj[i]);    }



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 08 Jan 2010
  • Poruke: 101

sta ce ti taj sleep() ?

mozes to i krace:

srand(time(0)); for(i=0; i<14; i++) {     niz[i] = rand()%14+1;     if(niz[i] == niz[i-1]) { // ako su trenutni i prethodni clan jednaki, ponovi rand() za trenutni clan niza         i--;     } }



Ko je trenutno na forumu
 

Ukupno su 379 korisnika na forumu :: 7 registrovanih, 1 sakriven i 371 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Djole, HrcAk47, Oscar2, panzerwaffe, pein, StefanS, uruk