不确定抽奖次数的情况下在一定的概率用纯java代码怎么实现

假如概率分别是10%和90%,比如抽十次必须达到一次中奖和另外九次不中奖的效果;
假如概率都是50%,抽两次不能出现连续两次抽中的效果;
总结就是抽奖的结果无论如何都要按照这个概率来,不能发生意外;
ps虚拟奖品,奖品的数量是不固定的!
如果可以,前端代码也行

这样的方式还用随机干嘛,直接递增进行除法取余,比如50%的概率就奇数全中奖,偶数都不中奖。觉得这样不够随机的话对中奖的余数随机,余数为0时重置,比如10%和90%,那么就是随机个0-9的数,余数是这个数的时间中奖,每次整除之后重新计算随机余数。

假如概率都是50%,抽两次不能出现连续两次抽中的效果;
这个需求有点蠢,抽奖本来就是随机数,随着次数的增加越来越接近概率而已。
一次中,一次不中的话,那我根据前面的人的抽奖结果就可以判断我这次的抽奖结果了。

需求真怪,不过也不是不能解决,假如10%、20%、30%、40%,计算他们的最大公约数,即10。得到1:2:3:4,相加等于10为一个轮回,每个轮回给4个奖项设定中奖次数1,2,3,4,次数=0即剔除抽奖区间。各50%同理,最大公约数为50,1:1,2为一个轮回,每个轮回中2各奖项次数为1,1。其他任何概率都适用