aboutsummaryrefslogtreecommitdiffstats
path: root/source/lang/api/randomseed.rst
diff options
context:
space:
mode:
authorHanna Mendes Levitin <hanna@anomaly-3.local>2010-12-01 03:37:07 -0600
committerHanna Mendes Levitin <hanna@anomaly-3.local>2010-12-01 03:37:07 -0600
commit5a7dd1bea32458a4afc038984a903959134b82d3 (patch)
tree4171e71c34841212585f855a3fbdf8aaf3b9bb4e /source/lang/api/randomseed.rst
parent8e42d34c8d3c81c037a3acaca553ea8c5e4f25aa (diff)
downloadlibrambutan-5a7dd1bea32458a4afc038984a903959134b82d3.tar.gz
librambutan-5a7dd1bea32458a4afc038984a903959134b82d3.zip
docs, now with style
Diffstat (limited to 'source/lang/api/randomseed.rst')
-rw-r--r--source/lang/api/randomseed.rst60
1 files changed, 60 insertions, 0 deletions
diff --git a/source/lang/api/randomseed.rst b/source/lang/api/randomseed.rst
new file mode 100644
index 0000000..d0a15b7
--- /dev/null
+++ b/source/lang/api/randomseed.rst
@@ -0,0 +1,60 @@
+.. highlight:: cpp
+
+.. _lang-randomseed:
+
+randomSeed()
+============
+
+``randomSeed()`` initializes the `pseudorandom number generator
+<http://en.wikipedia.org/wiki/Pseudorandom_number_generator>`_,
+causing it to start at an arbitrary point in its random sequence.
+This sequence, while very long, and random, is always the same.
+
+
+Library Documentation
+---------------------
+
+.. doxygenfunction:: randomSeed
+
+Discussion
+----------
+
+If it is important for a sequence of values generated by
+:ref:`random() <lang-random>` to differ, on subsequent executions of a
+sketch, use ``randomSeed()`` to initialize the random number generator
+with a fairly random input, such as :ref:`analogRead()
+<lang-analogread>` on an unconnected pin.
+
+Conversely, it can occasionally be useful to use pseudorandom
+sequences that repeat exactly. This can be accomplished by calling
+``randomSeed()`` with a fixed number, before starting the random
+sequence.
+
+Example
+-------
+
+The following sketch initializes the random seed based on an :ref:`ADC
+<adc>` reading of pin 0. If this pin is unconnected, the Sketch
+should print different values to the :ref:`serial monitor
+<ide-serial-monitor>` each time it is run::
+
+ long randNumber;
+
+ void setup() {
+ pinMode(0, INPUT_ANALOG);
+ randomSeed(analogRead(0));
+ }
+
+ void loop() {
+ randNumber = random(300);
+ SerialUSB.println(randNumber);
+
+ delay(50);
+ }
+
+See Also
+--------
+
+- :ref:`random() <lang-random>`
+
+.. include:: cc-attribution.txt