y***n 发帖数: 1594 | 1 有一列key,每个key有其对应的数值,要求写一个random的函数,key大的返回的概率
也大
这个是什么意思? |
A*****i 发帖数: 3587 | 2 跟前两天那个根据人口数目返回城市名的是同一题感觉 |
m*********a 发帖数: 3299 | 3 把每个key加起来,产生对应的random数,然后按key的大小选key
5,10,20key
产生0到35的随机数
随机数<5,return 5
15>x>=5 return 10
35>x>=15 return 20
【在 y***n 的大作中提到】 : 有一列key,每个key有其对应的数值,要求写一个random的函数,key大的返回的概率 : 也大 : 这个是什么意思?
|
y***n 发帖数: 1594 | 4 谢谢,看着有道理。
【在 m*********a 的大作中提到】 : 把每个key加起来,产生对应的random数,然后按key的大小选key : 5,10,20key : 产生0到35的随机数 : 随机数<5,return 5 : 15>x>=5 return 10 : 35>x>=15 return 20
|
y***n 发帖数: 1594 | 5 有一列key,每个key有其对应的数值,要求写一个random的函数,key大的返回的概率
也大
这个是什么意思? |
A*****i 发帖数: 3587 | 6 跟前两天那个根据人口数目返回城市名的是同一题感觉 |
m*********a 发帖数: 3299 | 7 把每个key加起来,产生对应的random数,然后按key的大小选key
5,10,20key
产生0到35的随机数
随机数<5,return 5
15>x>=5 return 10
35>x>=15 return 20
【在 y***n 的大作中提到】 : 有一列key,每个key有其对应的数值,要求写一个random的函数,key大的返回的概率 : 也大 : 这个是什么意思?
|
y***n 发帖数: 1594 | 8 谢谢,看着有道理。
【在 m*********a 的大作中提到】 : 把每个key加起来,产生对应的random数,然后按key的大小选key : 5,10,20key : 产生0到35的随机数 : 随机数<5,return 5 : 15>x>=5 return 10 : 35>x>=15 return 20
|
f**********t 发帖数: 1001 | 9 // 有一列key,每个key有其对应的数值,要求写一个random的函数,key大的返回的概
率也大
class RandomBiase {
vector> _vu;
public:
RandomBiase(const vector> &in) {
unsigned sum = 0;
for (auto x : in) {
sum += x.second;
_vu.push_back(make_pair(x.first, sum));
}
}
char Next() {
unsigned n = rand() % _vu.back().second;
auto it = lower_bound(_vu.begin(), _vu.end(), make_pair('#', n),
[](const pair &x, const pair &y) {
return x.second < y.second;
});
return it->first;
}
}; |