Co to są liczby losowe
Liczby losowe odgrywają ważną rolę w bezpieczeństwie i szyfrowaniu. Być może korzystałeś z sugestii haseł Google. Działa na zasadzie, która jest trochę podobna do generowania liczb losowych.
Liczby losowe to sekwencja liczb, których nie można przewidzieć, i jest to liczba wybrana ze zbioru liczb.
Dlaczego potrzebujemy liczb losowych
Liczby losowe są ważne dla operacji kryptograficznych, współczesnych obliczeń i symulacji. Liczby losowe pomagają również zwiększyć bezpieczeństwo komputera. Oto kilka głównych zastosowań liczb losowych:
- Liczby losowe stosowane w algorytmach
- Treści generowane proceduralnie, takie jak losowe obrazy, imiona i wiele innych
- W przypadku symulacji, które są niedeterministyczne, takich jak wzór czy, tasowanie kostek i wzorce pogodowe
Skoro już rozumiemy podstawowe zastosowania generatora liczb losowych ESP32, przyjrzyjmy się kodowi i wygenerujmy kilka liczb losowych.
Funkcja do generowania liczby losowej w ESP32
Płyta ESP32 zawiera sprzętowy generator liczb losowych, który wykorzystuje tę funkcję esp_random() .
esp_random() nie przyjmuje żadnych argumentów i daje nam losowo wygenerowaną wartość od 0 do UINT32_MAX (jest to maksymalna wartość, jaką int bez znaku może w niej przechowywać).
Uwaga : Jedną rzeczą do zapamiętania jest to, że sprzętowy generator liczb losowych ESP32 działa z wykorzystaniem Wi-Fi i Bluetooth. Prawda Liczba losowa jest generowany tylko wtedy, gdy oba są włączone. Jeśli te dwa są wyłączone, ESP32 może generować tylko plik pseudonumer . Aby uzyskać więcej informacji, sprawdź Espressif ESP32 Dokumentacja liczb losowych .
Interesująca informacja : Ciekawą informacją na temat sprzętowego generatora liczb losowych ESP32 jest to, że ESP32 zdał egzamin Zestaw testów liczb losowych Dieharder gdy pobierana jest próbka danych o wielkości 2 GB za pomocą ESP32, gdy włączone jest WiFi. Die Harder to test generatora liczb losowych.
Składnia
Oto składnia funkcji ESP32 dla liczby losowej:
Powrót
Ta funkcja zwraca losową wartość z przedziału od 0 do UINT32_MAX.
Kod do generowania losowej liczby
Otwórz Arduino IDE i prześlij podany kod w ESP32, aby wygenerować losową liczbę z zakresu od 0 do 4294967295 (maksymalna wartość int bez znaku).
unieważnić konfigurację ( ) {Serial.początek ( 115200 ) ; /* Szybkość transmisji zdefiniowana */
}
pusta pętla ( ) {
Serial.println ( '************' ) ;
Wydruk.seryjny ( 'Losowa liczba = ' ) ;
Serial.println ( esp_random ( ) ) ; /* Wydrukuj dowolną losową liczbę z 0 do największej unsigned int */
opóźnienie ( 2000 ) ; /* opóźnienie z 2 sek */
}
Wynik
Po przesłaniu kodu możemy zobaczyć dane wyjściowe na monitorze szeregowym. Tutaj widzimy, że ESP32 wygenerował dwie różne liczby losowe.
Kod do generowania liczby losowej z określonego zakresu
Załóżmy, że jeśli ESP32 WiFi nie jest włączone, istnieje alternatywa dla funkcji esp_random() . Możemy skorzystać z funkcji generatora liczb losowych Arduino (losowy()) .
Za pomocą tej funkcji możemy wygenerować dowolną liczbę losową z określonego przedziału.
Otwórz Arduino IDE i wgraj podany kod, który da nam losową liczbę z przedziału 10-20.
unieważnić konfigurację ( ) {Serial.początek ( 115200 ) ; /* Szybkość transmisji zdefiniowana */
}
pusta pętla ( ) {
Serial.println ( '************' ) ;
Wydruk.seryjny ( „Losowa liczba między 10 a 20=” ) ; /* Wydrukuj dowolną losową liczbę pomiędzy 10 oraz dwadzieścia */
Serial.println ( losowy ( 10 , dwadzieścia ) ) ;
opóźnienie ( 2000 ) ; /* opóźnienie z 2 sek */
}
Wynik
Na monitorze szeregowym można zobaczyć następujące dane wyjściowe: co 2 sekundy generowana jest liczba losowa.
Z powodzeniem omówiliśmy funkcje, których ESP32 używał do generowania liczb losowych.
Wniosek
Liczby losowe odgrywają główną rolę w prawdopodobieństwie i statystyce. Jest również pomocny w szyfrowaniu bezpieczeństwa i operacjach kryptograficznych. Ta lekcja pomoże ci w generowaniu różnych liczb losowych. Możemy również zdefiniować zakres, aby uzyskać liczbę losową.