\ransuuretu

実行する年・月・日・時・分を乱数の種として擬似乱数列を作成します。
 

定義されているスタイルファイル

emathRn.sty

ロードオプション [perl] を必須とします。

書式

\ransuuretu[#1]#2#3

  • #1: 取り出す乱数の上限値(デフォルト値=1)
  • #2: 取り出す乱数の個数
  • #3: 結果を受け取る制御綴

\ransuuretu*[#1]#2

  • #1: 取り出す乱数の上限値(デフォルト値=1)
    もしくは key=val 形式
    有効なキーは
    seed
    sup
  • #2: 取り出す乱数の個数
乱数列から1つずつ取り出すには,\ransuu コマンドを用います。

基本例

半開区間 [0, 1) の数値を5個並べる例です。
結果を受け取る制御綴(ここでは \kekka)に,それらの数値がコンマ区切りで並びます。
ransuuretu01.png

上限値の変更

デフォルトでは,上限値は1となっていますが,これを変更するオプションが[#1]です。
下では [10] として,半開区間 [0,10) の数値が得られます。
ransuuretu02.png

乱数の取り出し(1)

\Strsep

乱数列は,コンマ区切りになっていますが,これから1つの乱数を取り出す方法を紹介しましょう。
初めから順に取り出すには,\Strsep コマンドが簡単です。
ransuuretu03.png

\ransuu

この手続きを隠蔽化したのが \ransuu コマンドです。
ransuuretu03a.png

\ransuuretu*

乱数列(上の例で \kekka)を直接引用する必要がないときは
  \ransuuretu に代えて \ransuuretu*
を用いるのが簡潔です。
この場合,乱数列は TeX の制御綴 \ransuu@retu に保管されています。
(\ransuu で取り出されるたびに先頭が切り取られていきます。)
ransuuretu03b.png

乱数の取り出し(2)

もう1つの方法は,コンマ区切りで得られた乱数列を配列形式に変換する
  \csvhairetu
コマンドを用いる方法です。
ransuuretu04a.png

種(seed)の指定

乱数発生の種は,perl のデフォルトに従っていますが,
これを指定するにはオプション
  seed=...
を用います。
ransuuretu05.png
seed=.. の右辺値は整数ですが,perl の関数なども使用可能です。
ransuuretu06.png

上限値の指定

種(seed)の指定オプションを与える引数は,本来,上限値の指定に使われます。
種と上限値の両方を指定する際は,上限値の指定は
  sup=..
オプションを用います。
ransuuretu07.png

乱数列の再利用(1)

\ransuu で作成される乱数列は,毎回異なります。
何らかの事情で,一度作成した乱数列を再度使用したいときは
  \ransuuretu{100}\foo
  \setransuuretu{\foo}
と,
  一度作成した乱数列を制御綴に保管し,
  \setransuuretu コマンドで乱数列をリセットします。

応用例

モンテカルロ(Monte Carlo)法

モンテカルロ法を用いて,円周率の近似値を取得する例です。
MC01.png
  • 乱数を用いていますから,結果は実行するたびに異なります。

注意事項

  1. perl との連携機能を用いますから,タイプセット時には,
      platex -shell-escape
    などと起動オプションが必要です。
  2. \ransuu を用いるのは,使用メモリの点でも不利です。
    \csvhairetu* で配列に仕立てる方を推奨します。

関連事項


添付ファイル: fileMC01.tex 223件 [詳細] fileMC01.png 361件 [詳細] fileransuuretu04a.png 346件 [詳細] fileransuuretu07.png 360件 [詳細] fileransuuretu06.png 431件 [詳細] fileransuuretu05.png 431件 [詳細] fileransuuretu03b.png 442件 [詳細] fileransuuretu03a.png 470件 [詳細] fileransuuretu03.png 447件 [詳細] fileransuuretu02.png 429件 [詳細] fileransuuretu01.png 366件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-07 (月) 11:45:27 (2086d)