web-dev-qa-db-ja.com

乱数/単語のシーケンスを生成するためのseqの確率的バージョン?

少し前に、seqのようなツールを使用して、疑似乱数で生成された一連の数値をstdoutに出力しました。範囲、シード、サンプル数などを指定できます。

このツールの名前を忘れてしまいました。誰かが私を助けることができますか?

たとえば、さまざまな確率分布や、さまざまなアルファベットや長さ/文字の分布の下でのランダムな単語のシーケンスの生成をサポートする、さらに高度なツールを知っているかもしれません。

10
maxschlepzig

冗談ですか?

$ jot 
jot: jot - print sequential or random data
usage:  jot [ options ] [ reps [ begin [ end [ s ] ] ] ]
Options:
    -r      random data
    -c      character data
    -n      no final newline
    -b Word     repeated Word
    -w Word     context Word
    -s string   data separator
    -p precision    number of characters

Ubuntuを使用する場合、パッケージはathena-jotです。簡単な例:

$ jot -r 10 12 27
26
13
22
18
25
12
13
23
15
23

さようなら。

11
lcipriani

必要なことを実行するための小さなスクリプトを作成してもかまわない場合は、オープンソースの統計システムである [〜#〜] r [〜#〜] で作成することをお勧めします。

たとえば、このワンライナーを考えて、100個のガウス分布の数値のリストを取得します。

_$ Rscript -e 'write(rnorm(100) * 100 + 100, "", 1)'
234.2903
-25.53289
168.0262
-28.49810
105.0687
85.97355
269.5072
...
_

これを分解しましょう。

標準のRコマンドを使用すると、インタラクティブなプログラミング環境にアクセスできます。これは、手作業で何かを行う方法を模索している場合や、段階的に何かを構築している場合は問題ありませんが、質問からすると、別のプログラムに送信するには、番号のリストが必要です。その代わりに、従来のUnixスクリプトインタープリターのように動作するRscriptを使用します。Rスクリプトを含むファイルの名前を渡すか、標準の_-e_フラグを使用して全体を渡すことができます。コマンドラインのプログラムテキスト。

rnorm() は、「正規」またはガウス分布の乱数のリストを取得するためのR関数です。最大3つのパラメーターを取りますが、最初のパラメーターのみが必要であり、必要な数です。 100を要求しました。他の2つのオプションのパラメーターのデフォルトを使用することにより、平均0と標準偏差1が得られます。

その後の算術演算は、R言語の優れた機能を示しているだけです。データテーブル全体、行列などに対して、より一般的な言語のスカラー値と同じくらい簡単に算術演算を実行できます。生成されたすべての値に100を掛けて、100を追加しました。 Rは本格的なプログラミング言語であるため、この数字のリストでできることには制限がありません。これは、jotのような固定目的のコマンドの代わりにそのようなシステムを使用することの利点です。

前の操作の結果をwrite()関数に渡します。この関数は、デフォルトでデータをファイルに書き込みますが、2番目のパラメーターであるファイル名に空白の文字列を渡すことでオーバーライドしました。そのため、代わりにテーブルを端末に書き込みます。次のパラメーター_1_は、単一列形式で出力することを指示するだけです。

Rには many 他の乱数生成関数が基本システムに組み込まれています。たとえば、次のスクリプトを使用して、lcprianiの回答のjotコマンドを模倣できます。

_$ Rscript -e 'write(round(runif(10, 12, 27)), "", 1)'
_

ここでは、runif()を使用して、12から27までの10個の一様分布の乱数を取得しています。上記で使用したrnorm()と同様に、この関数は浮動小数点値を返すため、次のようになります。画面に書き込む前に、それらを最も近い整数値にround()します。

Rには、PerlのCPANをモデルにしたパ​​ッケージリポジトリである [〜#〜] cran [〜#〜] にも豊富なアドオンセットがあります。あなたが興味を持っているかもしれないものは単に random と呼ばれ、それは random.org へのインターフェースとして機能します。これは大気ノイズから生成された真の乱数を返すサービスです。

Rは完全なプログラミング環境であるため、実際にはテキスト形式でRから数値を取得する必要がない場合があります。あなたはRであなたの問題を完全に解決することができるかもしれません。それを試してみてください。

2
Warren Young