如何使用 swift playground 为 switch 语句中的一个随机区间分配一个概率?

问题描述 投票:0回答:1

我的程序模拟一场足球比赛。默认球队与随机球队比赛。var club: String 而每个俱乐部会在一个区间内打进一定数量的球,这个区间对球队来说是独一无二的。

我产生了一个随机数 teamN 而这个数字就在下面的案例陈述中。如果随机数是 "1",那么对手是曼联。"2 "是热刺等。

这是我的代码。

switch teamN { 
       case 1:
           club = manU
           goalsA = Int.random(in:0...2) // goalsA = # of goals Manchester United scored
           goalsH = Int.random(in:0...3) // goalsH = # of goals default team scored

       case 2:
           club = tott
           goalsA = Int.random(in:0...2)
           goalsH = Int.random(in:2...5)

       case 3:
           club = chel
           goalsA = Int.random(in:1...4)
           goalsH = Int.random(in:0...4)

       case 4:
           club = manC
           goalsA = Int.random(in:2...5)
           goalsH = Int.random(in:0...3)

       case 5:
           club = wat
           goalsA = Int.random(in:0...2)
           goalsH = Int.random(in:1...5)

       case 6:
           club = ever
           goalsA = Int.random(in:0...2)
           goalsH = Int.random(in:1...5)

       case 7:
           club = liv
           goalsA = Int.random(in:2...4)
           goalsH = Int.random(in:0...3)

       default:
           club = oops
           goalsA = Int.random(in:0...99)
           goalsH = Int.random(in:0...99) }

我如何给一个区间内产生的随机数分配一个概率?

目标是manU产生 "0"30%,"1"50%,"2"20%。这在Swift playground中如何写?

swift switch-statement probability swift-playground
1个回答
1
投票

你需要根据概率生成一个数组。

喜欢

p(0) = 30%
p(1) = 50%
p(2) = 20% 

所以我们的数组应该是

let probability = [0,0,0,1,1,1,1,1,2,2]

现在从这个数组中获取随机数

 if let getNumber = probability.randomElement() {

                    // assign that to your variable
                }
© www.soinside.com 2019 - 2024. All rights reserved.