Funkcie náhodných čísiel

Stroje, na rozdiel od ľudí, nemôžu jednoducho vytvoriť náhodné čísla. Náhodné čísla zvyčajne pozostávajú zo zložitých sérií algoritmov, ktoré sú štatisticky predvídateľné. Takéto čísla sa nazývajú pseudonáhodné. Na prvý pohľad vyzerajú skutočne ako náhodné, ale nie sú. Princípy generovania skutočne náhodných čísel sa väčšinou zakladajú na meraní fyzickej veličiny, ktorá sa považuje za náhodnú (pohyby plynov a kvapalín, fázový šum v laseru …). To je ale pre Arduino dosť komplikované.

random()

Táto funkcia slúži na generovanie pseudonáhodných čísel. Môže mať jeden alebo dva parametre.

random(max);      //vygeneruje "náhodné" číslo medzi 0 a max-1 
random(min, max); //vygeneruje "náhodné" číslo medzi min a max-1 

randomSeed()

Ku správnej funkcii generátoru je ešte potrebné použiť funkciu randomSeed(). Tá sa používa na nastavenie predvolenej hodnoty pre generátor. Má iba jeden číselný vstupný parameter (long, int).

Ako hodnota parametru sa používa funkcia analogRead() pre pin, ku ktorému nie je nič pripojené (neuzemnený – plávajúci). Pri takomto voľnom nezapojenom pine dochádza k zachytávaniu elektromagnetického šumu, ktorý môže slúžiť ako náhodná vstupná hodnota. Celý program môže vyzerať takto:

void setup() { 
  Serial.begin(9600); 
  randomSeed(analogRead(A0)); 
} 
void loop() { 
  delay(500); 
  Serial.println(random(256)); 
}

Naopak, môže byť občas užitočné použiť pseudonáhodné sekvencie, ktoré sa opakujú presne. To sa dá dosiahnuť volaním randomSeed() s pevným číslom pred spustením náhodnej sekvencie.

Tento text je preložený a upravený zo stránok arduino.cc pod licenciou Creative Commons Attribution-ShareAlike 3.0.

Výber na čítanie...

Arduino Knižnice návod na inštaláciu
Knižnice – návod na inštaláciu

Knižnice určené pre Arduino sú priečinky (adresáre), ktoré združujú viac súborov so zdrojovými kódmi. Vďaka týmto zdrojovým kódom máme potom jednoduchší a prehľadnejší vlastný program, keď chceme pripojiť nejaký zložitejší modul, senzor, displej a podobne. Napríklad pri stiahnutí programovacieho ...

Čítať viac...

MIT App Invertor 2
MIT App Invertor 2

Nástroj MIT App Inventor 2 je cloudové vývojové prostredie, ktoré umožňuje programovať aplikácie pre mobilné zariadenia s operačným systémom Android priamo v internetovom prehliadači. Je to nástroj, ktorý je vyvinutý...

Čítať viac...

ako na ošetrenie spínacích kontaktov - debouncing
Ako na ošetrenie spínacích kontaktov – debouncing

Všeobecne najčastejším spôsobom ovládania aplikácií Arduinom s okolitým svetom sú tlačítka, klávesnice (membránové, kapacitné alebo s mikrospínačmi), rotačné enkódery (rotation encoders, inkrementálne otočné ovládače) a rad ďalších spínačov, pracujúcich na...

Čítať viac...

Obľúbené produkty...

Keyestudio ESP32 Learning Kit

63.60 EUR

63.54 EUR

Keyestudio Multi-purpose Shield V2

9.13 EUR

9.13 EUR

Keyestudio GPS Shield

28.34 EUR

18.99 EUR

Vyhľadať články
Programovanie...
  • Funkcie náhodných čísiel

    Náhodné čísla zvyčajne pozostávajú zo zložitých sérií algoritmov, ktoré sú štatisticky predvídate...

  • Matematické funkcie

    Teraz si ukážeme, aké ďalšie matematické funkcie a operácie podporuje Arduino okrem sčítavania, o...

  • Konverzie

    Možno ste sa už pri programovaní dostali do situácie, kedy si program robil s číslami a dátovými ...

  • Ostatné IO funkcie

    U Arduina je možné generovať i zvuk, ale iba v najjednoduchšej podobe. Neumožňuje totiž generovať...

  • Pomocné premenné

    Ako pomocné premenné môžeme využiť funkcie sizeof() a PROGMEM. Ich popis rozoberiem v tomto článku...

Podpora webu
Na kávu už prispeli
Dátum Meno Suma
22.03.2025 Radoslav Kopera 5€
30.12.2024 Jozef Greš 5€
20.10.2024 Radovan Nosáľ 20€
02.10.2024 Milan Durkoš 10€
08.01.2024 Veres Dusan 10€
15.05.2023 Ivan Danis 10€
28.09.2022 Ivan Vrab 7€
14.05.2022 Nemcic Marian 10€
04.02.2022 Robert Bilko 5€
29.01.2022 Peter Buffa 5€
19.11.2021 Rastislav Rehak 5€
16.09.2021 Anton Strela 5€
13.09.2021 Juraj Jedlak 5€
02.09.2021 Michal Marek 7€
08.08.2021 František Uhrík 5€
21.07.2021 Juraj Hrdina 5€
25.03.2021 Jan Nemec 10€
16.03.2021 Igor Pavlov 5€
25.02.2021 Lukas Lacuch 5€
06.11.2020 Pavol Balint 5€
05.11.2020 Marek Horečný 5€
05.10.2020 Jan Kusnir 5€
27.04.2020 Jan Zuskin 15€
26.04.2020 Dušan Sojka 5€
24.02.2020 Juraj Lackanič 5€
22.01.2020 František Žilinec 10€
20.05.2018 Tomáš F. 2€
17.12.2018 Pavol P. 5€
QR Donate 10Eur