Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Autor: Pawel Koniarski
- * Data: 9 kwietnia 2014 r.
- * Problem: Program obliczajacy srednia wykonanych operacji podczas wyszukiwania
- * liczby w tablicy.
- * Dane: Brak.
- * Wyniki: Liczba rzeczywista bedaca srednia liczby wykonanych operacji przy
- * wyszukiwaniu liczby w tablicy.
- * Plik: zad8-110.cpp
- **/
- #include <iostream>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- // MIN - minimalna wylosowana liczba
- // MAX - maksymalana wyosowana liczba
- // NRN - liczba losowanych liczb w jednym przebiegu (rozmiar tablicy)
- // NRI - liczba przebiegow
- const int MIN = 0;
- const int MAX = 100;
- const int NRN = 50;
- const int NRI = 1000;
- int inline losuj(int a, int b)
- {
- return (int) ((double) rand() / ((double) RAND_MAX + 1) * b) + a;
- }
- void losujtab(int tab[], int n)
- {
- int i;
- for (i = 0; i < n; i++)
- tab[i] = losuj(MIN, MAX);
- }
- int szukaj(int tab[], int n, int k)
- {
- int i;
- for (i = 0; i < n; i++)
- if (k == tab[i])
- return i+1;
- return -1;
- }
- int main() {
- int i, t, suma = 0;
- int tab[NRN];
- srand(time(NULL));
- for (i = 0; i < NRI; i++)
- {
- losujtab(tab, NRN);
- t = szukaj(tab, NRN, losuj(MIN, MAX));
- suma += t != -1 ? t : NRN;
- }
- cout << "Srednia liczba operacji, w " << NRI << " przebiegach, potrzebnych do odnalezienia liczby z przedzialu od " << MIN << " do " << MAX << " w tablicy o rozmiarze " << NRN << " wynosi " << (double) suma / NRI;
- cout << endl << endl;
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement