aboutsummaryrefslogtreecommitdiffstats
path: root/source/arduino/random.rst
blob: 44f122aad2b6b7fcda4f7f2b4c380f412157c17c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
.. _arduino-random:

random()
========

Description
-----------

The random function generates pseudo-random numbers.



Syntax
------

random(max)
random(min, max)



Parameters
----------

min - lower bound of the random value, inclusive *(optional)*



max - upper bound of the random value, exclusive



Returns
-------

a random number between min and max-1 (*long*)



Note:
-----

If it is important for a sequence of values generated by random()
to differ, on subsequent executions of a sketch, use randomSeed()
to initialize the random number generator with a fairly random
input, such as analogRead() on an unconnected pin.



Conversely, it can occasionally be useful to use pseudo-random
sequences that repeat exactly. This can be accomplished by calling
randomSeed() with a fixed number, before starting the random
sequence.



Example
-------

::

    long randNumber;
    
    void setup(){
      Serial.begin(9600);
    
      // if analog input pin 0 is unconnected, random analog
      // noise will cause the call to randomSeed() to generate
      // different seed numbers each time the sketch runs.
      // randomSeed() will then shuffle the random function.
      randomSeed(analogRead(0));
    }
    
    void loop() {
      // print a random number from 0 to 299
      randNumber = random(300);
      Serial.println(randNumber);  
    
      // print a random number from 10 to 19
      randNumber = random(10, 20);
      Serial.println(randNumber);
    
      delay(50);
    }



See also
--------


-  `randomSeed <http://arduino.cc/en/Reference/RandomSeed>`_\ ()