Metody generowania liczb losowych w C++
Język programowania C ++ zawiera wbudowany pseudo-lampy generator liczb, a także dwie metody generowania liczb losowych: rand () i srand (). Przejdźmy przez metody Rand () i Srand ().
Skraj()
Aby uzyskać liczbę losową, używamy metody rand (). Po wywołaniu funkcja rand () w C ++ generuje pseudo-lodowską liczbę między 0 a rand max. Ilekroć stosuje się tę metodę, wykorzystuje algorytm, który daje szereg liczb losowych. Nie możemy uznać, że liczby utworzone są jako naprawdę losowe, ponieważ są one tworzone przy użyciu algorytmu, który wykorzystuje wartość nasion; Zamiast tego nazywamy takimi liczbami jako liczbami pseudo-losów.
SRAND ()
Metoda srand () jest często stosowana w połączeniu z metodą rand (). Jeśli metoda srand () nie jest stosowana, nasiona rand () jest generowane tak, jakby SRAND (1) był używany wcześniej w konfiguracji programu. Każda inna wartość nasion powoduje, że generator zaczyna się w nowej lokalizacji.
Zauważ, że jeśli użyjesz rand () do tworzenia liczb losowych bez uprzedniego wykonywania srand (), twój kod generuje sekwencję tych samych liczb całkowitych za każdym razem, gdy działa.
Przykład 1
Używamy metody rand () do generowania liczb losowych w szeregu liczb całkowitych. Najpierw zadeklarowaliśmy zmienną „MYnumber” z liczbą całkowitą typu danych. Zmienna „Mynumber” ma od użytkownika wartość integralną. Następnie mamy tablicę liczb całkowitych „Rand”, a na następnym wierszu mamy cykl pętli, który generuje liczbę losową nad każdą iteracją za pomocą metody rand ().
Bierzemy rozmiar tablicy, a następnie definiujemy tablicę tego rozmiaru. Metoda Rand () generuje liczby losowe, dzieli je przez 10 i przechowuje pozostałą część w tablicy w określonej pozycji. Tablica zostanie wydrukowana po inicjalizacji.
#włączaćWynik liczb losowych w tablicy liczb całkowitych pokazano na poniższym obrazku.
Przykład 2
Jak omówiono, Srand () ustawia ziarno metody rand (). Zbudowaliśmy metodę wypełniania tablicy losowymi wartościami za pomocą metody SRand () w C++. Przede wszystkim zaimportowaliśmy wbudowaną bibliotekę C ++ „Czas.h ”, który zwraca bieżący znacznik czasu w momencie, gdy funkcja jest wywoływana. W rezultacie możemy zapewnić, że do metody srand () podano odrębną wartość jako parametr za każdym razem, gdy program jest wykonywany.
Następnie mamy kolejną wbudowaną bibliotekę „stdlib.h ”, przez który możemy uzyskać dostęp zarówno do metod Rand, jak i Srand. Mamy główną funkcję, w której kod jest wdrażany. Stworzyliśmy tablicę jako „tablicę” niestandardowego rozmiaru. Rozmiar tablicy zostanie określony przez użytkownika. Następnie zastosowaliśmy metodę SRAND i przekazaliśmy w niej wartość nasion „Null”. Za każdym razem, gdy uruchamiamy program, zamiast powtarzanych wartości generowany jest losowy i unikalny zestaw wartości.
W bloku For Loop mamy metodę rand (), która wytworzy liczbę losową w każdym cyklu pętli. Polecenie Cout wydrukuje losową liczbę rozmiarów danej tablicy.
#włączaćWynik losowej liczby rozmiarów tablicy „4” jest wyświetlany na ekranie końcowym Ubuntu.
Przykład 3
Możemy również generować liczby losowe w zakresie. W poniższym programie zaimplementowaliśmy sposób wypełnienia tablicy losowymi liczbami całkowitymi w zakresie w C++. Stworzyliśmy tablicę jako „ARR”, która weźmie rozmiar tablicy, gdy użytkownik ją wprowadzi.
Następnie ustawiamy czas nasion na „zerowy” w metodzie SRAND. W miarę zastosowania metody SRAND program tworzy odrębne zestawy liczb losowych za każdym razem, gdy jest wykonywana. Następnie wygenerowaliśmy liczbę losową w zakresie od 0 do 5. Używamy operatorów modułu 5 do wywołania metody RAND.
#włączaćJak widać, losowa liczba wygenerowana leży w zakresie od 0 do 5 w następującym kawałku obrazu.
Przykład 4
Domyślnie funkcja rand (), którą widzieliśmy przed zwróceniem wyniku liczb całkowitych, która może w niektórych przypadkach stworzyć przepełnienie. W rezultacie możemy użyć pływaka lub podwójnej wartości w C++. Wygenerujemy liczby losowe Float w poniższym kodzie przykładowym, przekształcając wartość zwracania funkcji rand () na „float”.
Początkowo użyłem funkcji SRAND, która przeszła specyfikator typu danych niepodpisanych. Teraz zostanie wyświetlona tylko wartość nieujemna, i.mi., wartość dodatnia i zero, a czas nasion ustawiony na null. Następnie mamy instrukcję dla pętli, która zapętli cykl do 10 losowych wartości. Polecenie Cout rzuca typ danych pływakowych za pomocą metody RAND.
#włączaćDane wyjściowe programu to liczby losowe, które leżą między wartościami 0 i 1, które są ułamkami. Jeśli nie rzucimy wyniku powrotu metody rand () do pływania, 0 zostanie uzyskane jako liczba losowa.
Wniosek
Dlatego możemy tworzyć losowe liczby w C ++, wykorzystując dwie metody, rand () i srand (). Metoda srand () zapewnia ziarno tworzenia liczb losowych, podczas gdy metoda rand () zapewnia sekwencję dla następnych liczb losowych. Omówiliśmy cztery kody ilustracyjne w celu wygenerowania liczb losowych w C++. Pokazaliśmy również, jak wypełnić losowe liczby całkowite w tablicy w obrębie zakresu.