Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lekcja 21 - losowanie bez powtórzeń [inne spojrzenie na problem]

Ostatnio zmodyfikowano 2012-06-23 18:41
Autor Wiadomość
sadlawyer
Temat założony przez niniejszego użytkownika
Lekcja 21 - losowanie bez powtórzeń [inne spojrzenie na problem]
» 2012-06-23 17:42:59
Nie szukam pomocy, lecz jeśli ktoś coś powie, żeby zoptymalizować kod, który stworzyłem to się nie obrażę. Wpis powstał po to, aby pokazać inną może bardziej przystępną drogę rozwiązania problemu losowania bez powtórzeń. Mam nadzieję, że jakoś bardzo nie namieszałem i post nie jest usytuowany w zatrważająco złym dziale.

C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>

int losowanie() {
    return( rand() % 10 ) + 1;
}

void sprawdz( int tab[] ) {
    int i = 0, temp = 0, x;
   
    while( temp <= 10 ) { //przeczesujemy tablice
        while( i < temp && x != tab[ i ] ) {
            i++;
        }
        if( i != temp ) { //jeśli liczba została znaleziona w tablicy losujemy jeszcze raz
            x = losowanie();
        }
        else { //jeśli nie została znaleziona to wpisujemy ją na następne pole
            tab[ temp - 1 ] = x;
            temp++;
            x = losowanie();
        }
        i = 0;
    }
}

int main() {
    srand( time( NULL ) );
    int tablica[ 10 ];
    sprawdz( tablica );
    for( int i = 0; i < 10; i++ ) {
        std::cout << tablica[ i ] << std::endl;
    }
    return 0;
}

P-58982
DejaVu
» 2012-06-23 18:41:36
Nie ma potrzeby abyś zawracał sobie głowę optymalizacjami skoro się dopiero uczysz programowania.
P-58994
« 1 »
  Strona 1 z 1