Wprowadzenie do generatora liczb losowych w C ++
Wiele razy w naszym programowaniu powstaje sytuacja, aby losowo generować liczby. Na przykład gra w kości, dystrybucja kart do graczy, aplikacje do przetasowania utworów itp. Aby poradzić sobie z tymi rzeczami, powinniśmy mieć pewne narzędzia. W C ++ mamy dwa narzędzia do osiągnięcia tego generowania liczb losowych. Najpierw przyjrzymy się tym funkcjom, zrozumiemy ich potrzeby. Później wykorzystamy je w naszym kodzie, aby uzyskać funkcjonalność. Zacznijmy więc od funkcji i biblioteki, z którą jest on powiązany. W tym temacie poznamy Generator liczb losowych w C ++.
Jak wygenerować liczbę losową?
Aby osiągnąć generowanie liczb losowych, C ++ zapewnia narzędzia. Wszyscy wiemy, że większość wbudowanych funkcji znajduje się w pliku nagłówkowym C ++. Jednym z takich plików nagłówkowych jest stdlib.h. Jest to standardowa biblioteka posiadająca wiele wbudowanych funkcji, takich jak EXIT_FAILURE, EXIT_SUCCESS, RAND_MAX, NULL itp. Korzystając z tych funkcji, możemy łatwo uzyskać wymagane rozwiązanie. Nie musimy pisać długiej logiki, aby wyjść z tego. Zamiast tego możemy po prostu wywołać jedną z tych wbudowanych funkcji zgodnie z naszymi potrzebami. W ten sam sposób, aby osiągnąć losowe generowanie liczb, mamy dwie wbudowane funkcje. Są losowe i rand. Używając obu z nich w połączeniu, możemy uzyskać pożądany rezultat.
Zobaczmy, jakie są te funkcje.
- randomize () - Ta funkcja odpowiada za generowanie liczby losowej przy każdym uruchomieniu programu. Wynik będzie unikalny za każdym razem, gdy kod zostanie wykonany. Ta wyjątkowa wydajność sprawia, że bardziej polegamy na tej funkcji. Na przykład po pierwszym uruchomieniu kodu wygeneruje on dane wyjściowe w postaci 75, 23, 56, 24, 5, 21, 76, 32, 20 i 37. Następnym razem wygeneruje dane wyjściowe jako: 5, 64, 51, 78, 94, 53, 41, 19, 96 i 52. Zobaczymy, jak będzie wyglądało wyjście z użyciem tej funkcji i bez niej, pisząc kod w następnej sekcji.
- rand () - Aby wygenerować liczby od 0 do RAND_MAX-1 użyjemy tej funkcji. Tutaj RAND_MAX oznacza maksymalny możliwy zakres liczby. Powiedzmy, że musimy wygenerować liczby losowe z zakresu od 0 do 99, a następnie wartość RAND_MAX wyniesie 100. W zależności od potrzeb aplikacji, którą chcemy zbudować, wybierana jest wartość RAND_MAX. Na przykład, jeśli jest to gra w kości, RAND_MAX wyniesie 6. Jeśli jest to gra karciana, RAND_MAX wyniesie 52 itd.
Pamiętaj tylko, że obie funkcje są zadeklarowane w standardowej bibliotece stdlib.h. Nie zapomnij więc dołączyć tego pliku nagłówka do swojego kodu. Zobaczmy teraz, jak możemy napisać prosty program do generowania liczb losowych.
Przykład z krokami
Teraz, gdy mamy pojęcie o tym, jak działa funkcja generatora liczb losowych, napiszmy podstawowy program, który wygeneruje liczbę losową i wydrukuje wynik.
Napiszmy program krok po kroku, aby uzyskać lepszy wgląd w działanie.
- Pierwszym krokiem będzie dołączenie dwóch plików nagłówkowych niezbędnych dla programu. Pierwszy, jeśli h obejmuje funkcje wejściowe i wyjściowe. To jest plik nagłówkowy strumienia wejściowego i wyjściowego. Drugi ważny plik nagłówkowy to stdlib.h. Jak wspomniano wcześniej, ta standardowa biblioteka zawiera dwie funkcje, rand i randomize. Dołącz oba na początku kodu.
#include
#include
using namespace std;
- Teraz, gdy załączyliśmy pliki nagłówkowe, następnym krokiem jest napisanie głównej funkcji do wykonania kodu. Aby zdefiniować główną funkcję w następnej części.
int main( )
(
)
- Zadeklaruj liczbę do przechowywania i wydrukuj wartość liczby losowej. Typ danych będzie typu int i da dowolną nazwę.
int number;
- Potrzebujemy licznika pętli, aby zwiększyć wartości w pętli. Zadeklaruj więc indeks i, typu int. Maksymalna wartość przyrostu zdefiniujemy w pętli for .
int i;
- Teraz napiszemy pętlę for, do drukowania wartości losowo wygenerowanej liczby. Dla uproszczenia drukujemy 10 liczb. Zatem maksymalna liczba przyrostów wyniesie 10.
for(i = 1; i <= 10; i++)
(
)
- Wewnątrz pętli napiszemy funkcję rand. Poniższy kod mówi nam, że każda wygenerowana liczba losowa zostanie podzielona przez 100, a reszta zostanie zabrana. Oznacza to, że drukowane liczby będą miały zakres od 0 do 99. Jeśli chcesz wyższych zakresów, liczba modulo będzie inna. To znaczy zamiast 100 możemy umieścić, 150, 200, 100 itd.
number = rand() % 100;
- W ostatnim kroku wydrukujemy wygenerowany numer za pomocą cout.
cout << number << "\t";
- Kod wyjściowy jest następujący. Pamiętaj, że możesz uzyskać inną moc wyjściową, ponieważ jest to generator liczb losowych.
- Problem z powyższym kodem polega na tym, że przy każdym uruchomieniu kod otrzymuje ten sam zestaw danych wyjściowych. Aby tego uniknąć, musimy użyć srand () Tutaj odnosimy się do czasu w tej instancji i generujemy nowe wartości przy każdym uruchomieniu programu.
Spójrzmy na pełny kod z funkcją srand.
#include
#include
using namespace std;
int main( )
(
int number;
int i;
srand(time(0));
for(i = 1; i <= 10; i++)
(
number = rand() % 100;
cout << number << "\t";
)
)
Dwa wyjścia wykonania kodu:
Pierwsze wykonanie:
Drugie wykonanie:
- Poniżej znajduje się kod generujący 5 liczb losowych w zakresie 1000. Zmień wartość liczby i zobacz generowane dane wyjściowe za każdym razem. Porównaj różnice między używaniem bez znaku i bez używania.
#include
#include
#include
int main ()
(
int i, number;
time_t nTime;
number = 5;
srand((unsigned) time(&nTime));
printf("Random numbers are: \n");
for( i = 0 ; i < number ; i++ )
(
printf("%d\n", rand() % 1000);
)
return(0);
)
Wynik:
Za pierwszą iterację
Dla drugiej iteracji
Wniosek - generator liczb losowych w C ++
W tym artykule dowiedzieliśmy się, co to jest generator liczb losowych, potrzeby generatora liczb losowych, wbudowane funkcje C ++, aby to osiągnąć, z użyciem funkcji losowania i bez niej, znaczenie standardowej biblioteki stdlib.h, instrukcje krok po kroku napisać kod i na koniec porównać wyniki dwóch różnych podejść.
Polecane artykuły
Jest to przewodnik po Generatorze liczb losowych w C ++. Tutaj omawiamy sposób generowania liczb losowych wraz z przykładami i krokami. Możesz także spojrzeć na następujący artykuł, aby dowiedzieć się więcej -
- Modyfikatory dostępu w C ++
- Generator liczb losowych w Pythonie
- Generator liczb losowych w R.
- Zmienne w C ++
- Dostęp do modyfikatorów w PHP
- Generator liczb losowych w C #
- 11 najważniejszych funkcji i zalet C ++
- Przykłady wbudowanych funkcji Pythona