Pomoć oko izrade programa

poruka: 7
|
čitano: 949
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Pomoć oko izrade programa

Imam problem, a ne mogu ga riješit. Tj. riješila sam dio, a sad, za drugi dio nadam se da ćete mi vi pomoć Nevinašce

Program:

 

#include <stdio.h>

#include <conio.h>

#include <time.h>

#include <stdlib.h>

 

#define broj 25 

 

int polje[25],i;

 

main()

{

srand(time(NULL));

 

for ( i = 0; i < broj; i++ ) 

{   polje[ i ] = rand()%10000;   

printf("%d, ",polje[i]); 

}

getch();

}

 

A problem bi bio taj da ne znam kak napraviti da program, hm, razmišlja na način koji bi ja htjela (ne zna kak da drukčije kažem).

Recimo, da u kod programa ubacim  10 verzija 25 nasumično odabranih brojeva i da kad pokrenem program, on izbaci jedanaestu moju verziju? xD 

Ak tko kuži? jel to uopće moguće? Ak je, kak? :D

Pls, someone... help ! :)

Unaprijed zahvaljujem za eventualnu pomoć (ako je moguća)

 

 
0 0 hvala 0
16 godina
odjavljen
offline
RE: Pomoć oko izrade programa

Mislim da baš i nije najjasnije što želiš. Ako želiš 25 nasumično odabranih brojeva, onda to ovaj program radi. Ako želiš izvući neke brojeve koji će na neki način ovisiti o unesenim brojevima, onda to nije random.

Pokušaj dati neki primjer kako bi to izgledalo.

Heart: _/\_/\_/\_/\_/\_/\_/\_/\_ Brain: __________________________
15 godina
neaktivan
offline
RE: Pomoć oko izrade programa

E pa to, da ovisi o unesenim

Sam ne znam kak Neodlučan

16 godina
odjavljen
offline
Pomoć oko izrade programa

Ako želiš za iste unesene brojeve dobijat uvijek istu kombinaciju, onda možeš ili implementirati neki vlastiti algoritam koji će to raditi ili koristiti unesene kombinacije za postaviti rand funkciju. Mislim da rand po defaultu koristi vrijeme i processID za inicijalizaciju (nije pravi random, već ovisi o tom početnom podatku, a početni podatak je prilikom svakog pokretanja drugačiji), a koristeći srand to možeš promijenit. Nisam 100% siguran da li je to izvedivo, ali prouči malo po netu dokumentaciju rand i srand funkcija.

 

Da napišeš namjenu programa možda bi bilo lakše shvatiti konkretni problem.

Heart: _/\_/\_/\_/\_/\_/\_/\_/\_ Brain: __________________________
 
1 0 hvala 0
15 godina
neaktivan
offline
RE: Pomoć oko izrade programa

Hm, ne znam, pokušat ću.

Ak ne bude išlo, doći ću vas opet gnjavit. :P

15 godina
neaktivan
offline
Pomoć oko izrade programa

Ako funkciji srand das integer n, dakle pozoves srand(n), onda ce za isti n ispasti isti (pseudo)slucajni brojevi kad koristis rand.

 

Sad "samo" trebas smisliti kako dobiti seed n iz tvojih zadanih brojeva, a da su sve mogucnosti za n podjednako zastupljene i da su dobro rasporedene (dakle da ne ovise samo o prvom unesenom broju npr), a to mi na prvi pogled izgleda jako tesko. Doduse, djeluje kao interesantan problem, i slicna (iako u neku ruku suprotna) stvar se pojavljuje u odabiru evolucijske funkcije u genetskim algoritmima, pa bi se mozda od tamo mogla neka ideja pokupiti.

Ako ti nije toliko bitno da su svi n-ovi jednako zastupljeni, dosta dobar rezultat se moze dobiti tako da koristis slijedecu metodu:

 

int n = 0;

duljina = pow(2, sizeof(int));

for(int i = 0; i < zadani_brojevi; i++)

    for(int j = 0; j < broj[i]; j++)

        n = (n * p[i]) % duljina;

n = n - duljina / 2 + 1

 

Polje p treba sadrzavati prvih k prostih brojeva, gjde je k jednak broju zadanih brojeva. Kako ces generirati polje p ostavljam tebi :)

Moj PC  
0 0 hvala 0
17 godina
offline
Pomoć oko izrade programa

Ako bi htjela zavrtiti 10 verzija slučajnih brojeva, to nije problem, u isto polje smještaš verziju po verziju, postaviš još samo jednu vanjsku petlju, da zavrti ovu tvoju 11 puta, krajnji rezultat ispišeš

Ali ne kužim što će ti to

 
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice