盐川庄司日良树 盐川庄司日良树
关注数: 43 粉丝数: 62 发帖数: 7,815 关注贴吧数: 127
怎么写一个概率会动态变化的随机事件啊? 一个箱子有3种小球,70%抽到白球,20%抽到黑球,10%抽到红球,这个逻辑很好写, float resault = Random.Range(0f,1f); if(resault<0.1f) //红球 else if(resault<0.3f) //黑球 else //白球 那我现在如果想动态地改动箱子里球的种类,要怎么写逻辑呢? 例如,假设我一共有 红绿蓝黑白 5种球 第一次抽取时,里面只有黑白两种球,各10个, 之后每抽10次后,随机从5种球里拿一种球随机1-10个放入箱子里(已有的球不变) 我要如何写逻辑获取每次抽取的结果呢? 我自己的想法是需要一个字典Rule<string,float>,动态记录每次抽取时,抽取球的概率。然后和第一个算法类似地用随机值和每个球的概率比大小获得结果。 但是问题是,字典是没有顺序的。如果单纯通过foreach遍历每种概率来比大小,就有可能出现这种情况: 比如某次概率变化后,概率为红球50%,黑球10%,蓝球30%,白球10%。 第一次抽取时,随机值为0.14,通过foreach,先遍历到了红球,红球0.5比0.14大,所以结果为红球。 第二次抽取时,随机值仍为0.14,通关foreach,先遍历到了蓝球,蓝球0.3还是比0.14大,所以结果为蓝球。 这样同样的随机值就出现了两种不同的结果,就说明没有达到我想要的随机效果所以感觉这种做法会出问题,所以想问问我这个想法要怎么修改,或者有什么更简单地随机方法吗? 这个问题应该比较简单,但是我转不过弯来,求大佬们帮忙想想,谢谢
首页 1 2 下一页