Java 如何使用基于指数概率的案例创建switch语句?
所以我想创建一个switch语句,每种情况都有不同的被选择概率 案例1需要: 发生概率为案例2的2倍 发生概率是案例3的4倍 发生概率是案例4的16倍 发生情况5的可能性高出256倍Java 如何使用基于指数概率的案例创建switch语句?,java,switch-statement,probability,Java,Switch Statement,Probability,所以我想创建一个switch语句,每种情况都有不同的被选择概率 案例1需要: 发生概率为案例2的2倍 发生概率是案例3的4倍 发生概率是案例4的16倍 发生情况5的可能性高出256倍 我将如何在java中创建这些案例?这是一个非常奇怪的问题。如果你这样做是为了一些实际的目的,而不是作为一个谜,我敦促你重新考虑你的方法。总之,这是一个很好的小谜题 这里有一种方法可以做到这一点——生成一个随机整数,然后计算前导零的数量 有1/2的几率有零前导零(1) 有1/4的几率有1个前导零(01) 有1/8的
我将如何在java中创建这些案例?这是一个非常奇怪的问题。如果你这样做是为了一些实际的目的,而不是作为一个谜,我敦促你重新考虑你的方法。总之,这是一个很好的小谜题 这里有一种方法可以做到这一点——生成一个随机整数,然后计算前导零的数量
- 有1/2的几率有零前导零(
)1
- 有1/4的几率有1个前导零(
)01
- 有1/8的几率有2个前导零(
)001
- 有1/16的几率有3个前导零(
)0001
- 有1/32的几率有4个前导零(
)00001
- 有1/64的几率有5个前导零(
)000001
- 等
当然,你有可能得到一个你没有理由要的号码(比如32)。在这种情况下,您可能需要生成一个新号码并重试。为什么要切换?一个
if
似乎在这里更有意义。关于这个主题已经有了一条线索。。希望能对你有所帮助。我只是倾向于用switch语句来处理这类随机问题。如果我要使用If语句,我应该使用什么条件?