Random 基于期望值生成随机数
我正在用java编程,遇到了一个需要帮助的问题。基本上,我需要用户输入他们期望某个事件在一定时间内发生多少次。该活动也需要一定的时间才能完成。说到这里,我需要使用一个随机数生成器根据预期值来决定事件是否应该发生 这里有一个例子。假设事件需要2秒钟才能完成。用户表示他们总共需要100秒,他们预计事件会发生25次。现在这就是我所拥有的。Units是时间单位,expectedLanding是他们希望事件发生的次数Random 基于期望值生成随机数,random,numbers,Random,Numbers,我正在用java编程,遇到了一个需要帮助的问题。基本上,我需要用户输入他们期望某个事件在一定时间内发生多少次。该活动也需要一定的时间才能完成。说到这里,我需要使用一个随机数生成器根据预期值来决定事件是否应该发生 这里有一个例子。假设事件需要2秒钟才能完成。用户表示他们总共需要100秒,他们预计事件会发生25次。现在这就是我所拥有的。Units是时间单位,expectedLanding是他们希望事件发生的次数 double isLandingProb = units/expectedLanding
double isLandingProb = units/expectedLanding;
double isLanding = isLandingProb * random.nextDouble();
if(isLanding >= isLandingProb/2){
//do event here
}
此解决方案不起作用,我很难想出可行的方法。试试以下方法:
double isLandingProb = someProbability;
double isLanding = random.nextDouble();
if(isLanding <= isLandingProb){
//do event here
}
double isLandingProb=someProbability;
双孤岛=random.nextDouble();
如果(孤岛化给定一个运行时间为x
秒的事件,但您希望它平均每y
秒运行一次,那么它需要以概率x/y
执行。那么事件在y
秒上运行的秒数预期为x
=一个事件
int totalSeconds;
int totalTimes;
double eventTime;
double secondsPerEvent = 1.0d * totalSeconds / totalTimes;
if( eventTime > secondsPerEvent ) throw new Exception("Impossible to satisfy");
double eventProbability = eventTime / secondsPerEvent;
if( eventProbability < random.nextDouble() )
// do event
inttotalseconds;
整数倍;
双事件时间;
double SecondsPrevent=1.0d*totalSeconds/totalTimes;
如果(eventTime>SecondsPrevent)抛出新异常(“无法满足”);
双事件概率=事件时间/秒预防;
if(eventProbability
Define“is not working”。这非常有效,感谢您的快速回复。我走对了路,但需要一些帮助,非常感谢!!