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 996 korisnika na forumu :: 71 registrovanih, 10 sakrivenih i 915 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: 100jan, 8u47, ajo baba, alek_bre, ArchaBasha, Belac91, black sabah, Bobrock1, bojan581, Brada64, branko87, Cicumile, cifra, dankisha, dejankm, DejanSt, del boy, dinamik, Dragan1998, dragoljub11987, Dzigy, ele, goflja76, gomago, hatman, havoc995, HrcAk47, hyla, ilija.24, ivicasimo, jalos, JimmyNapoli, kaskadija, Kubovac, kybonacci, leptirleptir, luka35, m0nstrum_, Marko Marković, Marko987, mercedesamg, Mercury, Miki01, mikrimaus, Milo97, MiroslavD, Mitrast, moldway, Mrav Obrad, N.e.m.a.nj.a., Niko Bitan, Nikolaa11, nikolapetkovic, niksa517, Nobunaga, novator, ObelixSRB, oldtimer, pavle_pzs, PlayerOne, redstar011, Shajlok, Smiljke, sombrero, Srki98, stalja, Stanislav1970, USSVoyager, VJ, Zoca, Žrnov