嗨,我正在用 c 做一个项目
我有 3 个 IP,每个 IP 都有一个权重,我想使用随机函数根据其权重返回 IP,例如,如果我们有 3 个 IP:X 权重为 6,Y 权重为 4,Z 权重2,我想在 50% 的情况下返回 X,在 33% 的情况下返回 Y,在 17% 的情况下返回 Z,这取决于 C 中的随机函数。
有人可以帮我吗?
嗨,我正在用 c 做一个项目
我有 3 个 IP,每个 IP 都有一个权重,我想使用随机函数根据其权重返回 IP,例如,如果我们有 3 个 IP:X 权重为 6,Y 权重为 4,Z 权重2,我想在 50% 的情况下返回 X,在 33% 的情况下返回 Y,在 17% 的情况下返回 Z,这取决于 C 中的随机函数。
有人可以帮我吗?
例如,获取 0 到 1000000 之间的随机数。然后检查,如果它小于 500000 则选择 x,如果它在 500000 和 830000 之间选择 y,如果它在 830000 和 1000000 之间选择 z。
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
}
我以一种应该清楚如何概括该方法的方式编写它。