0

嗨,我正在用 c 做一个项目

我有 3 个 IP,每个 IP 都有一个权重,我想使用随机函数根据其权重返回 IP,例如,如果我们有 3 个 IP:X 权重为 6,Y 权重为 4,Z 权重2,我想在 50% 的情况下返回 X,在 33% 的情况下返回 Y,在 17% 的情况下返回 Z,这取决于 C 中的随机函数。

有人可以帮我吗?

4

2 回答 2

2

例如,获取 0 到 1000000 之间的随机数。然后检查,如果它小于 500000 则选择 x,如果它在 500000 和 830000 之间选择 y,如果它在 830000 和 1000000 之间选择 z。

于 2013-08-22T21:18:59.877 回答
0
double r = rand() / (double)RAND_MAX;
double denom = 6 + 4 + 2;
if (r < 6 / denom) {
  // choose X
} else if (r < (6 + 4) / denom) {
  // choose Y
} else {
  // choose Z
}

我以一种应该清楚如何概括该方法的方式编写它。

于 2013-08-22T21:16:18.400 回答