所以我想创建一个switch语句,每个案例都有不同的被选择概率。
案例 1 需要:
发生的可能性是病例 2 的 2 倍
发生的可能性是病例 3 的 4 倍
发生的可能性是病例 4 的 16 倍
发生的可能性是病例 5 的 256 倍
我将如何在 java 中创建这些案例?
这是一个非常奇怪的问题。如果你这样做是出于某种实际目的,而不是作为一个难题,我敦促你重新考虑你的方法。无论如何,这是一个不错的小谜题。
这里有一种方法可以做到这一点 - 生成一个随机整数,然后计算前导零的数量。
有- 1/2 的机会有零前导零 (
1
(
有 1 - /4 的机会有 1 个前导零 (
01
(
有 - 1/8 的机会有 2 个前导零 (
001
( - 有 1/16 的几率有 3 个前导零 (
0001
(
有 - 1/32 的几率有 4 个前导零 (
00001
(
有 - 1/64 的几率有 5 个前导零 (
000001
( - 等
然后,您可以switch
这个数字。
当然,你有可能得到一个你没有案例的数字(比如32(。在这种情况下,您可能需要生成一个新数字,然后重试。