Previous: Math Functions, Up: Numbers [Contents][Index]
決定論的なコンピュータープログラムでは、真の乱数を生成することはできません。しかしほとんどの目的には、疑似乱数(pseudo-random numbers)で充分です。一連の疑似乱数は、決定論的な手法により生成されます。真の乱数ではありませんが、それらにはランダム列を模する特別な性質があります。たとえば疑似ランダム系では、すべての可能な値は、均等に発生します。
疑似乱数は“シード(seed:
種)”から生成されます。与えられた任意のシードから開始することにより、random
関数は常に同じ数列を生成します。デフォルトでは、Emacsは開始時に乱数シードを初期化することにより、それぞれのEmacsの実行において、random
の値シーケンスは(ほとんど確実に)異なります。
再現可能な乱数シーケンスが欲しい場合もあります。たとえば乱数シーケンスに依存するプログラムをデバッグする場合、プログラムの各実行において同じ挙動を得ることが助けになります。再現可能なシーケンスを作成するには、(random
"")
を実行します。これは特定のEmacsの実行可能ファイルにたいして、シードに定数値をセットします(しかし、この実行可能ファイルは、その他のEmacsビルドと異なるものになるでしょう)。シード値として、他のさまざまな文字列を使用することができます。
この関数は疑似乱数の整数をreturnします。繰り返し呼び出すと、一連の疑似乱数の整数をreturnします。
limitが正の整数の場合、値は負ではないlimit未満の値から選択されます。それ以外では、値はmost-negative-fixnum
からmost-positive-fixnum
の間の、Lispで表現可能な任意の整数(Integer Basicsを参照してください)になるでしょう。
limitがt
の場合は、Emacsを再起動したときに、新しいシードを選択することを意味します。
limitが文字列の場合、その文字列定数にもとづいた新しいシードを選択することを意味します。