Lekcja 10 Liczby pseudolosowe
- Szczegóły
- Andrzej Borecki
- Odsłony: 2507
Generator Liczb pseudolosowych To program lub podprogram, który na podstawie niewielkiej ilości informacji generuje losowe liczby.
Co to znaczy pseudolosowe?
Znaczy to że są one generowane według określonego schematu i jeśli zainicjalizujemy funkcję losującą tą samą wartością to program zwróci wylosowane liczby w tej samej kolejności .
Funkcje losujące
To Funkcje, które posłużą do wylosowania liczb znajdują się w bibliotece cstdlib, którą dołącza się poprzez dyrektywę include: #include <cstdlib>
#include <cstdlib> |
Następnie musimy uzyć czegoś co nam wygeneruję liczby, do tego użyjemy funkcji srand(), jednakże należy pamietać że konieczne będzie coś co nam będzie te liczby losowało, do tego będzie potrzebna funkcja rand().
|
#include <iostream>
#include <cstdlib> //deklaracja biblioteki obsługującej funkcję rand
using namespace std;
int main() {
srand(100);
for (int i = 0; i < 10; i++)
cout << rand() << endl;
system("pause");
return 0;
}
Program, który wylosuje liczbę od 1 do 100
#include <stdio.h>
#include <cstdlib> //deklaracja biblioteki obsługująca rand
#include <iostream>
#include <time.h> //deklaracja biblioteki obsługująca srand
using namespace std;
int liczba; // wartość wylosowanej liczby
int main()
{
cout <<"Witaj zgadnij o jakiej liczbie pomyślałem z zakresu od 1 do 100"<<endl;
srand(time(NULL)); // umożliwia zmianę wylosowanej liczby
liczba = rand()%100+1; // % operator modulo
cout<<liczba<<endl;
return 0;
}
Program, który wylosuje 5 liczb z zakresu od 1 do 100
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;
int liczba;
int main()
{
cout <<"witaj pomyślalem sobie liczne od 1 do 100"<<endl;
srand(time(NULL)); // tej funkcji nie należy kopiować!
liczba = rand()%100+1;
cout<<liczba<<endl;
liczba = rand()%100+1;
cout<<liczba<<endl;
liczba = rand()%100+1;
cout<<liczba<<endl;
liczba = rand()%100+1;
cout<<liczba<<endl;
liczba = rand()%100+1;
cout<<liczba<<endl;
return 0;
}
Program, który wylosuje dowolną liczbę z zakresu od 1 do 100 i użytkownik będzie musiał odgadnąć jaka to liczba? (wykorzystamy petlę while}
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;
int liczba, podana_liczba;
int main()
{
cout <<"witaj pomyślalem sobie liczne od 1 do 100"<<endl;
srand(time(NULL));
liczba = rand()%100+1;
cout<<liczba<<endl; // tu widać wylosowaną liczbę (później należy wykasować ten wiersz)
while(podana_liczba!=liczba) // warunek wyjścia z pętli
{
cout<<"Zgdanij jaka jest liczba ";
cin>>podana_liczba;
if (podana_liczba==liczba)
cout<<"Trafiles - BRAWO"<<endl;
else if (podana_liczba<liczba)
cout<<"To za malo"<<endl;
else if (podana_liczba>liczba)
cout<<"To za duzo"<<endl;
}
return 0;
}
Ten sam progam wzbogacony o ilość podanych prób w celu odgadnięcia liczby
#include <stdio.h>
#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;
int liczba, podana_liczba; //deklaracja nowej zmiennej
int ilosc_proba=0;
int main()
{
cout <<"witaj pomyślalem sobie liczne od 1 do 100"<<endl;
srand(time(NULL));
liczba = rand()%100+1;
cout<<liczba<<endl;
while(podana_liczba!=liczba)
{
ilosc_proba++; //zwiększenie ilości prób o 1
cout<<"Zgdanij jaka jest liczba - to Twoja "<<ilosc_proba<<" proba: "; //wypisanie ilości prób
cin>>podana_liczba;
if (podana_liczba==liczba)
cout<<"Trafiles - BRAWO"<<endl;
else if (podana_liczba<liczba)
cout<<"To za malo"<<endl;
else if (podana_liczba>liczba)
cout<<"To za duzo"<<endl;
}
return 0;
}