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 -

  1. Modyfikatory dostępu w C ++
  2. Generator liczb losowych w Pythonie
  3. Generator liczb losowych w R.
  4. Zmienne w C ++
  5. Dostęp do modyfikatorów w PHP
  6. Generator liczb losowych w C #
  7. 11 najważniejszych funkcji i zalet C ++
  8. Przykłady wbudowanych funkcji Pythona