Q:给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关键字)。如何才能从这个无穷尽的流中随机的选取1000个关键字?


A:首先定义长度为1000的数组,将前1000个关键字放置到数组中。然后对于第1001及以后的每一个关键字(设为第n个),这个关键字被选中的概率为1000/n,所以以这个概率来和数组中随机一个元素替换。

//1000/n概率的实现
if(rand()%n<1000)
  swap(str[n],str[rand()%1000]);

相关文章:

  • 2021-06-22
  • 2022-12-23
  • 2021-11-17
  • 2022-12-23
  • 2021-08-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-08-23
  • 2021-12-24
  • 2021-05-16
  • 2021-11-02
  • 2021-10-18
  • 2022-12-23
  • 2021-11-16
相关资源
相似解决方案