列表均匀取样?

发布于 2022-09-04 19:04:25 字数 45 浏览 16 评论 0

一个int类型的列表A,长度为a,从此列表中【均匀】取出长度为x的样本列表?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

×眷恋的温暖 2022-09-11 19:04:25

以下代码均匀随机选取样本列表b[1:k]且保持原来在a[1:n]中的顺序。算法是:p[1:n]是一个1到n的随机排列,选择那些使p[i] <= ka[i]进入样本。

choose(a[1:n], k)
  b = {}
  p = {1, 2, ... n}
  for i from 1 to n
    // random(i, n) 返回i和n之间(包含)的随机整数
    swap(p, i, random(i, n))
    if p[i] <= k
      append a[i] to b
  return b
2022-09-11 19:04:25

请参考蓄水池算法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文