&size(24){''\ransuuretu''};
 実行する年・月・日・時・分を乱数の種として擬似乱数列を作成します。
#contents
#br

*定義されているスタイルファイル [#dd6d22bb]
emathRn.sty
 ロードオプション [perl] を必須とします。

*書式 [#mf33704f]
\ransuuretu[#1]#2#3
-#1: 取り出す乱数の上限値(デフォルト値=1)
-#2: 取り出す乱数の個数
-#3: 結果を受け取る制御綴

\ransuuretu*[#1]#2
-#1: 取り出す乱数の上限値(デフォルト値=1)~
もしくは key=val 形式~
有効なキーは~
[[seed>#seed]]~
sup
-#2: 取り出す乱数の個数

 乱数列から1つずつ取り出すには,\ransuu コマンドを用います。
*例 [#b2428a50]
**基本例 [#kc7b55af]
 半開区間 [0, 1) の数値を5個並べる例です。
 結果を受け取る制御綴(ここでは \kekka)に,それらの数値がコンマ区切りで並びます。
#ref(ransuuretu01.png)
**上限値の変更 [#b7f18bdb]
 デフォルトでは,上限値は1となっていますが,これを変更するオプションが[#1]です。
 下では [10] として,半開区間 [0,10) の数値が得られます。
#ref(ransuuretu02.png)
**乱数の取り出し(1) [#cb6e9889]
***\Strsep [#l71cd02b]
 乱数列は,コンマ区切りになっていますが,これから1つの乱数を取り出す方法を紹介しましょう。
 初めから順に取り出すには,\Strsep コマンドが簡単です。
#ref(ransuuretu03.png)
***\ransuu [#daa36711]
 この手続きを隠蔽化したのが \ransuu コマンドです。
#ref(ransuuretu03a.png)
***\ransuuretu* [#oe1b7479]
 乱数列(上の例で \kekka)を直接引用する必要がないときは
   \ransuuretu に代えて \ransuuretu*
 を用いるのが簡潔です。
 この場合,乱数列は TeX の制御綴 \ransuu@retu に保管されています。
 (\ransuu で取り出されるたびに先頭が切り取られていきます。)
#ref(ransuuretu03b.png)
**乱数の取り出し(2) [#q8dde5fb]
 もう1つの方法は,コンマ区切りで得られた乱数列を配列形式に変換する
   \csvhairetu
 コマンドを用いる方法です。
#ref(ransuuretu04.png)
#ref(ransuuretu04a.png)
**種(seed)の指定 [#seed]
 乱数発生の種は,perl のデフォルトに従っていますが,
 これを指定するにはオプション
   seed=...
 を用います。
#ref(ransuuretu05.png)
 seed=.. の右辺値は整数ですが,perl の関数なども使用可能です。
#ref(ransuuretu06.png)
**上限値の指定 [#w26e7db0]
 種(seed)の指定オプションを与える引数は,本来,上限値の指定に使われます。
 種と上限値の両方を指定する際は,上限値の指定は
   sup=..
 オプションを用います。
#ref(ransuuretu07.png)
**乱数列の再利用(1) [#c59de7a1]
 \ransuu で作成される乱数列は,毎回異なります。
 何らかの事情で,一度作成した乱数列を再度使用したいときは
   \ransuuretu{100}\foo
   \setransuuretu{\foo}
 と,
   一度作成した乱数列を制御綴に保管し,
   \setransuuretu コマンドで乱数列をリセットします。
-(注)この手法については,[[\setransuuretu のページ>setransuuretu]]をご覧ください。 
**応用例 [#f371359c]
***モンテカルロ(Monte Carlo)法 [#d45e687d]
 モンテカルロ法を用いて,円周率の近似値を取得する例です。
#ref(MC01.png,center,wrap)
#ref(MC01.tex,center,上のソースリスト)
-乱数を用いていますから,結果は実行するたびに異なります。
*注意事項 [#ff3c81fc]
+perl との連携機能を用いますから,タイプセット時には,~
  platex -sh~
  platex -shell-escape~
などと起動オプションが必要です。
+\ransuu を用いるのは,使用メモリの点でも不利です。~
\csvhairetu* で配列に仕立てる方を推奨します。
*関連事項 [#xd03c22e]
+[[\Iransuuretu>Iransuuretu]]
+[[\rndsuji>rndsuji]]
+[[\ransuu>ransuu]]
+[[\setransuuretu>setransuuretu]]
-[[乱数]]
--[[\Iransuuretu>Iransuuretu]]
--[[\rndsuji>rndsuji]]
--[[\ransuu>ransuu]]
--[[\setransuuretu>setransuuretu]]
RIGHT:&counter;


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS