Clojure で、開区間 (0,1) から引き出された疑似乱数の mxn 行列を出力する関数を構築しようとしています。指定された入力は、行の次元 m と列の次元 n になります。私は、Clojure で構築された行列、ネストされたベクトルに精通していますが、これまでに乱数 (疑似) を生成したことはありません。私の最初の推測は、ゼロから始める場合、剰余演算を使用して mxn 行列の入力を送り出すことです。これは、このアイデアを実装する最も簡単な方法ですか?
2 に答える
4
ビルトイン(rand)
は、uniform から 0 と 1 の間の数値を生成します。
(for [row (range m)]
(for [column (range n)]
(rand)))
独自のジェネレーターを実装する必要はありません。
于 2013-12-26T20:04:34.273 に答える
2
を使用core.matrix
すると、emap
関数を使用してこれを行うことができます。
(emap (fn [_] (rand)) (new-array [5 4]))
デフォルトでは、これはネストされた Clojure ベクトルの行列を返します。
[[0.3325314113549507 0.7148578741930893 0.1786957191876699 0.46844096741466656]
[0.8216388560276083 0.3733963694778344 0.7311554209845575 0.05163744870109632]
[0.7838218008385947 0.8751976936581514 0.16056093051752107 0.5836745330219952]
[0.6137578842075752 0.9735681676917135 0.30319026184660314 0.19757184630153146]
[0.6216442815557222 0.795080498020428 0.685714719411497 0.1567460494112074]]
于 2013-12-27T18:00:56.777 に答える