0
ExponentialDistribution exp = new ExponentialDistribution(4.0); 
     for(int i = 1; i < 20; i++){ 
      timestamp[i] = (int)exp.sample() + 1+timestamp[i-1]; 

ここで、timestampは整数の配列であり、上記の条件でランダム値が割り当てられます。何が(int)exp.sample()が行い、どのようにランダム値をiに代入するのですか? ExponentialDistribution APIからどのように(int)exp.sample()がコード内で動作しますか?

+3

いいえ、わかりません。 'ExponentialDistribution'とは何ですか? –

+0

それは明らかにapache.commonsパッケージにあります:http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/distribution/ExponentialDistribution.html私はこれを共有している主な理由は私が言うことができる意味のあるコメントを口実にするための口実として:あなたの名前はちょうどThe Whoへの参照でなければなりません、そうですか? –

+4

'(int)exp.sample()'は、 'exp'で参照されるオブジェクトのメソッド' sample() 'を呼び出し、戻り値を' int'にキャストします。すべての***非常に***基本的なJavaの基本。提案:Javaを学ぶ。 – Andreas

答えて

0

http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/distribution/ExponentialDistribution.html#sample()

公共ダブルサンプル()

この 分布からサンプリングされた乱数値を生成します。デフォルトの実装では、inversionメソッドが使用されます。

アルゴリズムの説明:この実装では、反転メソッド を使用して、均一な の偏差から指数分布乱数値を生成します。

だから、(int)exp.sample()が表示されたら、それをこのランダム値に変換しています。 expはExponentialDistribution(4.0)のインスタンスですので、exp.sample()はExponentialDistributionsample()メソッドを呼び出します。

今度は(int)です。

オブジェクト型またはプリミティブ型を別のオブジェクト/プリミティブの前にかっこ(intの場合は(int))に配置することを「キャスト」といいます。ほとんどCasting variables in Java

sample()戻りdoubleが、timestampints以来、我々は(それらが一致しなければなりません)、そのタイプのいずれかを切り替える必要があり、それがexp.sample()年代を変更するwaaaaay簡単です。

これは、「オブジェクトexpを持って、sample()というメソッドを呼び出して、それをintに変換する」と言います。

+0

そのようなこともやっていますが、次の出力がどのように生成されるかはわかりません。 –

+0

timestampはtimestamp [i]の値を与え、ranは(int)exp.sample()を実行します。ランが生成される特定の番号のセットがあるかどうか、またはループ状態のiに依存するかどうかを知りたい場合... timestamp = 9 ran = 8、 timestamp = 10 ran = 7 、 タイムスタンプ= 13が実行= 6、 タイムスタンプ= 26、実行= 6、 タイムスタンプ= 34、実行= 3、 タイムスタンプ= 35、実行= 7、 timestamp40ran3 timestamp41ran3 timestamp43ran7 timestamp45ran4 timestamp48ran9 timestamp51ran11 timestamp53ran10 timestamp58ran3 timestamp63ran5 timestamp65ran3 tim estamp67ran8 timestamp68ran3 timestamp72ran3 –

+0

私は 'ラン'が表示されず、あなたがコメントしたものは私には100%判読不能です。しかし私は説明を更新しました。 'sample()'の値をどのようにつかまえたら、平均4の指数分布から取り出すだけです。それがどうなるかについてさらに知りたければ、http:http: ://commons.apache.org/proper/commons-math/apidocs/src-html/org/apache/commons/math3/distribution/ExponentialDistribution.html –

0

クラスExponentialDistributionは、Exponential Distributionの後に擬似乱数を生成します。本当にランダムではないので、疑似です。あなたが得るすべての単一の乱数を生成するために方程式が使用されます。

メソッドexp.sample()は、シーケンス内の次の乱数を返します。 (int)を使うと、整数部分だけが得られます。

関連する問題