Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21993

Losowanie bez powtórzeń - liczby pseudolosowe.

$
0
0

Cześć. 

Jako nowy obywatel tego forum, chciał bym się przywitać ze wszystkimi. Za tem! Cześć Wam! 

Od jakiegoś czasu uczę się programować korzystając z kursów na kanale Pasja Informatyki, zresztą stamtąd tutaj trafiłem. Oczywiście jak będę umiał, tak będę się starał również wspierać swoją wiedzą innych członków tego forum. Tym czasem sam mam pytanie:  

Jestem po 5 odcinku czyli znam już tablice i ich zastosowanie. Ponieważ losowanie liczb w lotto z powtórzeniami nie bardzo mi pasowało chciałem zrobić upgrade programu z 4 odcinka tak aby liczby się nie powtarzały. I w zasadzie się udało, oto kod: 

#include <iostream>
#include <unistd.h>
#include <ctime>
#include <cstdlib>

using namespace std;

int liczba[6];
int x[6];

int main()
{
    system("clean");
    srand(time(NULL));

    cout<<"Za chwilę zacznie się losowanie liczb"<<endl;
    sleep(3);

    for(int i=0; i<6 ;i++)
    {
        x[i]=rand()%49+1;

        if((x[i]==liczba[0]) || (x[i]==liczba[1]) || (x[i]==liczba[2]) || (x[i]==liczba[3]) || (x[i]==liczba[4]) || (x[i]==liczba[5]))
        {
            cout <<"\a";
            i--;
        }
        else
        {
            liczba[i]=x[i];
            cout<<"Wylosowana "<<i+1<<" liczba to: "<<liczba[i]<<endl;
            sleep(1);
        }
    }
    getchar();

return 0;
}

 

Wykorzystałem do tego celu funkcję IF. Jednak zastanawia mnie jak bardziej ten kod zoptymalizować. Jeżeli w IF'ie wpisujemy  6 spójników logicznych OR to spokojnie można to zrobić z palca, ale gdybyśmy mieli ich np. 1000 ?? Wklepywanie tego samego tysiąc razy nie jest za dobre. Czy istnieje sposób aby jakoś wklepać zakres do zbadania w tablicach coś na stylu np: "IF(x[i]!=tablica[1-999])" ?? Czy za każdym razem trzeba wklepywać nowe spójniki logiczne podobnie jak zrobiłem w kodzie. 

Pozdrawiam

Grzegorz


Viewing all articles
Browse latest Browse all 21993

Trending Articles


Sprawdź z którą postacią z anime dzielisz urodziny


MDM - Muzyka Dla Miasta (2009)


Częstotliwość 3.722MHz


POSZUKIWANY TOMASZ SKOWRON-ANGLIA


Ciasto 3 Bit


Kasowanie inspekcji Hyundai ix35


Steel Division 2 SPOLSZCZENIE


SZCZOTKOWANIE TWARZY NA SUCHO


Potrzebuje schemat budowy silnika YX140


Musierowicz Małgorzata - Kwiat kalafiora [audiobook PL]