从数组随机抽取5个不重复_Power Query 如何保证随机抽取元素不重复
继续昨天的话题,昨天我们实现完全的随抽取列表元素,有一个问题就是可能几次会抽取同一个位置的元素:
1-50中随机抽取5个数值,点击刷新,就会出现不同的结果,如上图可能会出现两个相同的数值,如何确保每次都能抽取到不同的元素?
两个思路:
- 每次抽取结束后,被抽到的元素从列表中移除,再进行下次抽取
- 确保抽取的元素位置不重复
我们今天要用到的是第二种,我们用两个函数来确保取得非重复的位置:
- List.Distinct:获取非重复元素列表
- List.FirstN:获取前几个元素
昨天讲的产生随机整数的套路继续沿用,我们来看自定义函数:
let
源 =(l,n)=>List.Transform(
List.FirstN(
List.Distinct(
List.Transform(
{1..100},
(x)=>Number.IntegerDivide(Number.RandomBetween(0,List.Count(l)-1),1))
),
n),
(x)=>l{x})
in
源
代码有点长,我们分解来看:
最里层的List.Transform是产生一个随机整数的列表,为了防止出现重复导致列表元素去重复后数量不够,我们要求做100个随机数。具体的随机数的公式就不解释了,参照昨天的内容。
List.Distinct把这100个随机整数列表去重复。
List.FirstN取非重复整数列表的前n个元素。
最外层的List.transform就是根据List.FirstN产生的地址,取出列表l元素。
这样大家是不是就能够了解这个函数的意思了。
我们来看引用这个函数的结果:
我们从小写字母中,随机抽取5个字母,保证不重复。
欢迎加入圈子,学习更多Power Query相关的知识。
从数组随机抽取5个不重复_Power Query 如何保证随机抽取元素不重复相关推荐
- 每天一道LeetCode-----给定大小为n+1的数组,元素大小在[1 : n]之间,只有一个元素会重复出现多次,找到重复的那个
Find the Duplicate Number 原题链接Find the Duplicate Number 给定一定大小为n+1的数组,数组中的元素只可能是1到n中的数字,包括1和n.在数组中,有 ...
- 381. O(1) 时间插入、删除和获取随机元素 - 允许重复
链接:381. O(1) 时间插入.删除和获取随机元素 - 允许重复 题解: class RandomizedCollection { private:std::unordered_map<in ...
- java数组练习题---创建元素不重复的数组
题目:创建一个8元素的数组并输出,元素在1-10之间随机生成,且不相同: 题目表面上看似简单,实际却有一个最大的难点-----如何保证元素不重复: 因为元素是随机生成的且逐一赋值的,所以就可以在这一阶 ...
- R语言使用random包生成随机数或者随机字符串实战:randomNumbers函数创建随机整数的数据集(包含重复项)、randomSequence函数创建不含重复项的随机序列数据集、创建随机字符串
R语言使用random包生成随机数或者随机字符串实战:randomNumbers函数创建随机整数的数据集(包含重复项).randomSequence函数创建不含重复项的随机序列数据集.创建随机字符串 ...
- 用三个线程实现生产者消费者模型,其中一个线程作为生产者,二个线程作为消费者,生产者随机生产一个时间戳或者字符串,消费者消费这个时间戳,并不能重复消费,并将其打印出来
题目要求: 用三个线程实现生产者消费者模型,其中一个线程作为生产者,二个线程作为消费者,生产者随机生产一个时间戳或者字符串,消费者消费这个时间戳,并不能重复消费,并将其打印出来.(这是一道百度面试的算 ...
- 力扣 O(1) 时间插入、删除和获取随机元素 - 允许重复
力扣 O(1) 时间插入.删除和获取随机元素 - 允许重复 题目描述 设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构. 注意: 允许出现重复元素. insert(val):向集 ...
- 人工智能笔记之专业选修课4.1.5 - 博弈论 9.重复博弈,效用,随机博弈
重复博弈 (repeated games) 当我们考虑世界上绝大部分互动时,其中很多不止会发生一次 市场上的公司 它们与竞争对手活动 朋友,你会交换吗,你会在朋友需要帮助时帮助他们吗?你需要时他们会帮 ...
- mysql随机不连续数据_用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串...
用MySQL里的Rand()生成 不连续重复 的随机数年龄以及随机姓名字符串 前言: RAND函数,返回在范围0到1.0内的随机浮点值.如果一个整数参数N被指定,它被用作种子值. 一,朋友问题描述如下 ...
- 【回溯算法】【打卡第179道】:leetCode :39. 组合总和(数组中的元素可以重复使用)
1.题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有不同组合 ,并以列表形式 ...
最新文章
- 如何在VirtualBox虚拟机软件上安装Win7虚拟系统
- Ultra96_v2实现交通标示识别
- HDU-5895 Mathematician QSC
- 【渝粤题库】陕西师范大学292969 会计学 作业 (专升本、高起本)
- LeetCode 302. 包含全部黑色像素的最小矩形(BFS)
- C语言逗号表达式 - C语言零基础入门教程
- mac怎么查node版本_py2neo基本操作(v4版本,亲测有效)
- Java中list对象的三种遍历方式
- Go Web 编程--超详细的模板库应用指南
- MySQL多表数据记录查询详解
- 各数据库要使用保留字的处理办法
- idea主题颜色Linux,intellij idea 主题大全,看不惯idea 那2种主题的来这里了
- 十天精通CSS3学习笔记 part3
- sicily 1282. Computer Game
- 注册表修改服务器连接数量,如何通过Win10注册表更改时间服务器参数值?
- 保姆级教程:个人深度学习工作站配置指南
- 开源多云技术平台——Choerodon猪齿鱼发布0.24版本
- Enterprise Architect安装
- vue3和vue2不同点总结
- Word排版过程中多个参考文献一起引用