1

0.007379 から 0.913855 までの 100 を超えるさまざまな確率のセットがあります (これらの確率は、アクチュアリー テーブルhttp://www.ssa.gov/oact/STATS/table4c6.htmlから収集されました)。Java では、これらの確率を使用して、何かが起こるかどうかを判断するにはどうすればよいですか? これらの線に沿った何か...

public boolean prob(double probability){
  if (you get lucky)
    return true;
  return false;
}
4

3 に答える 3

10

このRandomクラスを使用すると、一貫した乱数のセットを作成できるため、プログラムを実行するたびに、同じ値のシーケンスが生成されます。Randomクラスを使用して、正規分布のランダム値を生成することもできます。私はあなたがそのいずれかを必要とするとは思わない。

あなたが説明することについては、私はMath.randomを使用します。したがって、男性の年齢を考えると、次のように書くことができます。

double prob = manDeathTable[age];
if( Math.random() < prob )
   virtualManDiesThisYear();
于 2012-04-28T23:14:31.557 に答える
6

Randomまず、プログラムの適切な場所 (たとえば、プログラムの開始時)のインスタンスを作成する必要があります。

Random random = new Random();

次のコードを使用して、イベントが発生するかどうかを確認します。

boolean happens = random.NextDouble() < prob;
于 2012-04-28T22:46:52.027 に答える
0

その範囲がどこから来たのかわかりません。分布を念頭に置いている場合は、ランダムを使用して値を生成し、それを続けることをお勧めします。

public ProbabilityGenerator {
    private double [] yourValuesHere = {  0.007379, 0.5,  0.913855 };
    private Random random = new Random(System.currentTimeMillis());

    public synchronized double getProbability() {
        return this.yourValuesHere[this.random.nextInt(yourValuesHere.length));
    }
}
于 2012-04-28T22:44:10.053 に答える