Wprowadzenie do generatora liczb losowych w C

Aby wygenerować oczekiwany wynik, program musi mieć odpowiednie dane wejściowe. Zazwyczaj dane wejściowe są dostarczane przez użytkownika, ale czasami program musi sam wybrać dane wejściowe. Na przykład, aby uzyskać bieżący znacznik czasu, aplikacja korzysta z wbudowanej funkcji, aby pobrać go z systemu. W ten sam sposób, czasami musimy wygenerować dowolną liczbę losową, która mogłaby być dalej przetwarzana w celu uzyskania oczekiwanego wyniku. Choć dla użytkownika wygląda to losowo, język programowania oferuje nam mechanizm określania zakresu liczby losowej. W tym artykule zobaczymy implementację programu generowania liczb losowych przy użyciu języka programowania C. Będziemy koncentrować się na wbudowanej funkcji zapewnianej przez C w celu wygenerowania liczby losowej.

Co to są funkcje generatora liczb losowych w C?

Istnieje kilka metod generowania liczby losowej przy użyciu dowolnego języka programowania. Można zdefiniować funkcję własnego sposobu szacowania lub generowania liczby losowej, podczas gdy istnieją wbudowane funkcje w dowolnym języku programowania, który generuje liczbę losową. W języku programowania C mamy funkcję o nazwie rand, która pomaga w generowaniu liczby losowej. Ta funkcja jest wstępnie zdefiniowana w języku C i może być zaimplementowana w programie za pomocą pliku nagłówkowego stdlib.h. Deweloper musi wspomnieć o pliku nagłówkowym stdlib.h na początku programu, aby wykorzystać funkcję rand. Za każdym razem, gdy wywoływana jest ta funkcja, generuje ona całkowicie losową liczbę. W oparciu o wymaganie można wygenerować liczbę należącą do typu liczb całkowitych, zmiennoprzecinkowych lub podwójnych. Można go po prostu użyć w programie za pomocą funkcji rand ().

Chociaż funkcja rand ma generować losową wartość, blokuje się, aby generować tę samą wartość za każdym razem, gdy program jest wykonywany, i może się tak zdarzyć z powodu stałej wartości początkowej. Jeśli wymagane jest generowanie nowej liczby losowej przy każdym uruchomieniu programu, musimy upewnić się, że ziarno powinno się zmieniać przy każdym uruchomieniu programu. Czas jest czymś, co ciągle się zmienia, i może być również uważany za coś, co może pomóc w uzyskaniu losowej wartości początkowej za każdym razem i aby wykorzystać czas w programie, musimy użyć pliku nagłówka time.h.

Generacja liczb całkowitych

Funkcja rand () służy do generowania liczby losowej. Za każdym razem, gdy jest wywoływane, podaje losową liczbę. Jeśli programiści dodadzą do niej trochę logiki, mogą wygenerować liczbę losową w określonym zakresie, a jeśli zakres nie zostanie wyraźnie określony, zwróci całkowicie losową wartość całkowitą. Funkcji rand () w C można użyć do wygenerowania liczby losowej, a wygenerowana liczba całkowicie usuwa ziarno. Ziarno to wartość używana przez funkcję rand do generowania wartości losowej. Jeśli wartość początkowa jest ciągle zmieniana, generowana liczba będzie nowa za każdym razem, gdy program zostanie skompilowany, w przeciwnym razie zwróci tę samą wartość za każdym razem, gdy została wygenerowana przy pierwszym uruchomieniu programu. W celu wygenerowania Poniżej znajduje się program do generowania liczb całkowitych losowych.

Program

#include
#include
#include
int main()
(
int rand_num;
srand(time(0));
printf("The randomly generated number is”);
rand_num = rand();
printf("%d\n", rand_num);
)
)

Wynik:

Losowo generowana liczba to 1804289383.

W tym programie wykorzystaliśmy plik nagłówkowy time.h, który służy do wykorzystania czasu systemowego w generowaniu liczby losowej. Ponieważ czas zmienia się za każdym razem, wartość nasion zmienia się za każdym razem, gdy program zostanie wykonany, pomagając nam generować losową liczbę za każdym razem, gdy program jest wykonywany. Rand_num to zmienna używana do przechowywania losowo wygenerowanej liczby. Funkcja rand () generuje liczbę losową przypisaną do zmiennej rand_num. Ponieważ nie zdefiniowaliśmy jawnie wartości zwracanej liczby losowej, otrzymamy liczbę całkowitą.

Generowanie liczb zmiennoprzecinkowych

Podejście do generowania losowej wartości zmiennoprzecinkowej jest podobne do podejścia do generowania liczby całkowitej. Jedyna różnica polega na tym, że musimy wyraźnie zdefiniować, że wartość, której oczekujemy od funkcji rand, powinna być zmiennoprzecinkowa. Wartość zmiennoprzecinkowa zwykle zajmuje więcej miejsca w pamięci w porównaniu do krótkiej int. Program, który napisaliśmy powyżej, do losowego generowania wartości liczb całkowitych będzie taki sam, jak tutaj będziemy pisać. Jedyną różnicą będzie wyraźna definicja typu danych. Podobnie jak w przypadku ostatniego programu, użyliśmy tutaj pliku nagłówka time.h, aby umożliwić jego udział w generowaniu liczb losowych zmiennoprzecinkowych. Jeśli ten plik nagłówkowy nie jest zawarty w programie, będzie dawał tę samą wartość za każdym razem, gdy program. Jest wykonywany. Poniżej znajduje się program do losowego generowania wartości zmiennoprzecinkowych.

Program

#include
#include
#include
int main()
(
float rand_num;
srand(time(0));
printf("The randomly generated float number is ”);
rand_num = (float) rand();
printf("%f", rand_num);
)
)

Wynik:

W tym programie wykorzystaliśmy (zmiennoprzecinkowe), które służy do jawnego zdefiniowania, że ​​wartość zwracana z funkcji rand powinna mieć charakter zmiennoprzecinkowy. Ponieważ zmienna ran_num jest również definiowana za pomocą typu danych zmiennoprzecinkowych, będzie ona w stanie obsłużyć liczbę zmiennoprzecinkową, która zwykle ma sześć cyfr po przecinku, gdy jest generowana w języku programowania C. Podczas drukowania wartości zmiennoprzecinkowej użyliśmy% f, ponieważ należy o to zadbać podczas drukowania wartości zmiennoprzecinkowej.

Wniosek

Aby zwiększyć losowość liczby, można wykorzystać wyrażenia matematyczne. Korzystając z logiki można również zdefiniować zakres liczb, pod którymi liczby mają być generowane losowo. Funkcja generowania losowej gumy jest zapewniana przez wszystkie języki programowania i używana w rzeczywistej aplikacji na podstawie wymagań. Aby zapewnić silną losowość liczby, musimy upewnić się, że funkcja seed, która jest używana do generowania wartości losowej, powinna być bardzo losowa i nowa przy każdym uruchomieniu programu.

Polecane artykuły

Jest to przewodnik po Generatorze liczb losowych w C. Tutaj omawiamy funkcję, generowanie liczb całkowitych i generowanie liczb zmiennoprzecinkowych w C. Możesz również przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Generator liczb losowych w R.
  2. Co to jest klasa szablonów w C ++?
  3. Algorytm losowego lasu
  4. Frameworki w Javie
  5. Co to jest generator liczb losowych w Pythonie?
  6. Generator liczb losowych w C ++ (przykłady z krokami)
  7. Generator liczb losowych w Matlabie
  8. Generator liczb losowych w C #
  9. Generator liczb losowych w JavaScript
  10. Generator liczb losowych w PHP