•gabor_oliviu1991
|
|
« : Martie 10, 2009, 14:56:17 » |
|
am incercat sa imi fac un generator de teste in borland ma lovesc de aceasi problema. functiile rand(); si random(var); imi returneaza aceasi valoare de fiecare data. poate nu stie eu sa le folosesc cum trebuie, asa fac va rog sa ma ajutati. multumesc
|
|
|
Memorat
|
|
|
|
•c_e_manu
|
|
« Răspunde #1 : Martie 10, 2009, 15:09:59 » |
|
rand()%100;//numar random intre 0 si 99
randomize(); random(100);//acelasi lucru
recomandat e primul fiindca e ANSI C din cate tin minte
|
|
|
Memorat
|
|
|
|
•alexandru92
|
|
« Răspunde #2 : Martie 10, 2009, 15:27:43 » |
|
..in borland am intampinat o problema cu randomize() si random(); daca puneam int main() { //niste calcule din care rezulta n; randomize(); std::cout<<random(n)<<endl;
afisa acelasi lucru .........dar daca pun int main() { randomize(); //niste calcule din care rezulta n; std::cout<<random(n)<<endl;
Merge perfect, adica da numere aleatorii. Mi-a explicat cineva ca este ceva de a face cu seed dar nu prea am inteles...........
|
|
|
Memorat
|
|
|
|
•gabor_oliviu1991
|
|
« Răspunde #3 : Martie 10, 2009, 15:39:34 » |
|
sa zicem ca am rezolvat problema cu randomizarea numerelor. dar apare alta poblema. sa zice ca imi aleg un numar oarecare. il bag intr-o matrice. si daca incerc sa afisez matricea imi afiseaza prima linie de m ori, m fiind numarul de linii completate. am incercat sa afisez si dupa ce imi generez fiecare numar, dar acelasi rezultat. ii incredibil ce poate "scoate" borlandu din el. trebuie sa ii reconsider pozitia de program principal de codare, cel putin pentru mine. ce ii gresit? programul ar trebui sa imi genereze N si M, iar pe urmatoarele M linii sa fie un numar aleator de numere mai mici sau egale cu N #include<fstream.h> #include<stdlib.h>
int x[100][100],n,m,i,j,nr,k,viz[100],numar,a[100][100];
int main() { ofstream g("gentest.in"); n = m = 0; while(n == 0) { randomize(); n = rand() % 20; } while(m == 0) { randomize(); m = rand() % n; }
for(i = 1; i <= m; i++) { nr = 0; while(nr == 0) { randomize(); nr = random(n); }
k = 1;
memset(viz, 0, sizeof(viz));
for(j = 1; j <=nr; j++) { randomize(); numar = random(n); if(viz[numar] == 0 && numar != 0) { x[i][x[i][0]+1] = numar; viz[numar] = 1; x[i][0]++; } } }
for(i = 1; i <= m; i++) { for(j = 1; j <= x[i][0]; j++) g<<x[i][j]<<" "; g<<endl; } return 0; }
|
|
« Ultima modificare: Martie 10, 2009, 16:00:43 de către gaboru corupt »
|
Memorat
|
|
|
|
•alexandru92
|
|
« Răspunde #4 : Martie 10, 2009, 17:53:07 » |
|
nu inteleg ce rol are nr ?? iti spune cate numere sa puna pe linia i?...sau #include<fstream.h> #include<stdlib.h> #define g cout //mi-a fost lene sa folosesc fisiere ;) int x[100][100],n,m,i,j,nr,k,viz[100],numar,a[100][100];
int main() { //ofstream g("gentest.in"); n = m = 0; while(n == 0) { randomize(); n = rand() % 20; } while(m == 0) { randomize(); m = rand() % n; } // cout<<n<<" "<<m<<endl; for(i = 1; i <= m; i++) { nr = 0; while(nr == 0) { // randomize(); nr = rand()%n; }// cout<<nr<<endl;
k = 1;
memset(viz, 0, sizeof(viz));
for(j = 1; j <=nr; j++) { //randomize(); numar = rand()%n;//random(n); if(viz[numar] == 0 && numar != 0) { x[i][x[i][0]+1] = numar; viz[numar] = 1; x[i][0]++; } }
}
for(i = 1; i <= m; i++) { for(j = 1; j <= x[i][0]; j++) g<<x[i][j]<<" "; g<<endl; } // */ system("PAUSE"); return 0; }
L-am testat si se pare ca merge .....
|
|
« Ultima modificare: Martie 10, 2009, 17:58:25 de către alexandru »
|
Memorat
|
|
|
|
•c_e_manu
|
|
« Răspunde #5 : Martie 10, 2009, 18:11:11 » |
|
#include<fstream.h> #include<stdlib.h> #include<time.h>
int x[100][100],n,m,i,j,nr,k,viz[100],numar,a[100][100]; time_t t;
int main() { srand((unsigned) time(&t)); ofstream g("gentest.in"); n = m = 0; while(n == 0) { n = rand() % 20; } while(m == 0) { m = rand() % n; }
for(i = 1; i <= m; i++) { nr = 0; while(nr == 0) { nr = rand()%n; }
k = 1;
memset(viz, 0, sizeof(viz));
for(j = 1; j <=nr; j++) { numar = rand()%n; if(viz[numar] == 0 && numar != 0) { x[i][x[i][0]+1] = numar; viz[numar] = 1; x[i][0]++; } }
} g<<n<<' '<<m<<'\n';
for(i = 1; i <= m; i++) { for(j = 1; j <= x[i][0]; j++) g<<x[i][j]<<" "; g<<endl; }
return 0; } foloseste rand si srand in loc de random si randomize... ar trebui sa-ti mearga pe orice compilator c++ trebuie sa reinitializezi generatorul de numere aleatoare doar o data inainte sa rulezi programul..
|
|
|
Memorat
|
|
|
|
•wefgef
|
|
« Răspunde #6 : Martie 10, 2009, 18:23:51 » |
|
Setarea seed-ului ar trebui sa aiba loc o singura data, la inceputul programului, nu inainte de fiecare apel al functiei rand().
|
|
|
Memorat
|
omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
|
|
|
•c_e_manu
|
|
« Răspunde #7 : Martie 10, 2009, 18:45:06 » |
|
Setarea seed-ului ar trebui sa aiba loc o singura data, la inceputul programului, nu inainte de fiecare apel al functiei rand(). pai da... asta am zis si eu inainte, doar mai pe "babeste"
|
|
|
Memorat
|
|
|
|
•gabor_oliviu1991
|
|
« Răspunde #8 : Martie 10, 2009, 19:06:45 » |
|
am rezolvat merci. acuma sa rezolv si problema pentru care am nevoie de generator ca nu imi dau seama unde se impotmoleste. multumesc inca o data la toti
|
|
|
Memorat
|
|
|
|
•alexandru92
|
|
« Răspunde #9 : Martie 10, 2009, 19:08:14 » |
|
de curiozitate ce problema rezolvi ?? .......daca nu te superi
|
|
|
Memorat
|
|
|
|
|
•id_dobreandrei
Strain
Karma: -13
Deconectat
Mesaje: 5
|
|
« Răspunde #11 : August 28, 2009, 09:59:39 » |
|
As dori un generator de teste care sa merga pentru web. As dori sa pun teste grila de matematica pe www.mateinfo.ro. Ma poate ajuta cineva? De exemplu http://www.testegrila.ro/ sau testele de la ase ? Administrator www.mateinfo.roprof. Andrei Dobre
|
|
|
Memorat
|
|
|
|
•bogdan2412
|
|
« Răspunde #12 : August 28, 2009, 16:31:50 » |
|
Nu este nevoie sa postati de 2 ori pe acelasi subiect. Daca e cineva care va poate ajuta o sa va raspunda in topicul respectiv. De asemenea, "generator de teste" se refera la altceva decat aveti nevoie.
|
|
|
Memorat
|
|
|
|
|