infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: gaboru corupt din Martie 10, 2009, 14:56:17



Titlul: Generator de teste
Scris de: gaboru corupt din 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 :)


Titlul: Răspuns: Generator de teste
Scris de: Emanuel Cinca din Martie 10, 2009, 15:09:59
Cod:
rand()%100;//numar random intre 0 si 99


randomize();
random(100);//acelasi lucru

recomandat e primul fiindca e ANSI C din cate tin minte :)


Titlul: Răspuns: Generator de teste
Scris de: alexandru din Martie 10, 2009, 15:27:43
..in borland   am intampinat o problema cu  randomize() si random();
daca puneam 
Cod:
int main()
  {
    //niste calcule  din care rezulta n;
     randomize();
      std::cout<<random(n)<<endl;
afisa acelasi lucru  .........dar daca pun
Cod:
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...........


Titlul: Răspuns: Generator de teste
Scris de: gaboru corupt din 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

Cod:
#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;
}


Titlul: Răspuns: Generator de teste
Scris de: alexandru din Martie 10, 2009, 17:53:07
nu inteleg ce rol are nr ?? iti spune cate numere sa puna  pe linia  i?...sau
Cod:
#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 .....:D


Titlul: Răspuns: Generator de teste
Scris de: Emanuel Cinca din Martie 10, 2009, 18:11:11
Cod:
#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..


Titlul: Răspuns: Generator de teste
Scris de: Andrei Grigorean din 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().


Titlul: Răspuns: Generator de teste
Scris de: Emanuel Cinca din Martie 10, 2009, 18:45:06
Citat
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"  :)


Titlul: Răspuns: Generator de teste
Scris de: gaboru corupt din 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 :peacefingers:


Titlul: Răspuns: Generator de teste
Scris de: alexandru din Martie 10, 2009, 19:08:14
de curiozitate ce problema rezolvi ??  .......daca nu te superi


Titlul: Răspuns: Generator de teste
Scris de: gaboru corupt din Martie 10, 2009, 19:18:36
http://infoarena.ro/problema/senat


Titlul: Răspuns: Generator de teste
Scris de: Andrei Dobre din 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.ro
prof. Andrei Dobre


Titlul: Răspuns: Generator de teste
Scris de: Bogdan-Cristian Tataroiu din August 28, 2009, 16:31:50
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.ro
prof. Andrei Dobre

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.