10
14
2007
Losowanie - tablice dynamiczne
Napisał michaeel w kategorii Cpp, Studia, tags: Cpp, losowanie, programowanie, tablicaTym razem kolejny skrypt do losowania jednak oparty na tablicach dynamicznych. Autorem jest Mariusz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #include <iostream> #include <time.h> using namespace std; main () { srand(time(NULL)); unsigned int *tab, all, ile; int j, i; do { cout << "Podaj maksymalna granice: "; cin >> all; cout << "Podaj liczbe losowanych elementow: "; cin >> ile; } while ((ile>all) || (ile==0)); tab = new unsigned int [ile]; for (i=0; i<ile; i++) { tab[i]=(rand()%all)+1; for (j=i-1; j>=0; j--) { if (tab[i]==tab[j]) { tab[i]=(rand()%all)+1; j=i; } } } for (i=0; i<ile; i++) cout << i << " ma wartosc: " << tab[i] << endl; delete [] tab; } |
i jeszcze jedna odmiana od Mariusza, ten kod działa tak, że najpierw zeruje wszystkie liczby z których będziemy losować, nastpenie losuje i o ile to możliwe zamienia 0 na 1 i tak az wylosuje pożądaną liczbę elementów:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <iostream> #include <time.h> using namespace std; main () { srand(time(NULL)); unsigned int *tab, all, ile, i; do { cout << "Podaj calkowita liczbe elementow: "; cin >> all; cout << "Podaj liczbe elementow losowanych: "; cin >> ile; } while ((all<ile) || (ile==0)); tab=new unsigned int [all+1]; for (i=0; i<all+1; i++) tab[i]=0; i=0; do { i=(rand()%all)+1; if (tab[i]==0) { tab[i]=1; ile--; cout << i << ", "; } } while (ile); delete [] tab; } |


Wpisy (RSS)