【typescript洗牌算法】随机选取3-5个数据

本文介绍了如何使用Fisher-Yates洗牌算法对数组进行随机排序,以便从一个有序数组中随机抽取3-5个元素。作者提供了JavaScript代码示例,展示了如何先洗牌再切片以获取随机子数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果我有一串待处理数据,但是我想要一次随机抽取3-5个,并且要求每次取出的数据随机


洗牌算法(Shuffle Algorithm)的目的是将一个有序的数组打乱,使得每个元素出现在每个位置的概率都是相等的。最著名的洗牌算法是Fisher-Yates洗牌算法,也称为Knuth洗牌算法。

一、Fisher-Yates 洗牌算法

Fisher-Yates洗牌算法的基本思想是遍历数组元素,并且在当前位置与一个随机选取的未被洗牌的位置(包括当前位置)的元素进行交换。这个过程从数组的最后一个元素开始,向前进行到第二个元素。

二、算法步骤

  1. 将当前元素的索引设置为数组的最后一个元素的索引。
  2. 在当前索引和数组第一个元素之间选择一个随机索引。
  3. 交换当前索引和随机选取的索引处的元素。
  4. 将当前索引减一(向前移动一位)。
  5. 重复步骤2-4,直到当前索引到达数组的开始。

三、 代码实现

  // 随机选取3-5个关键词
  getRandomSubarray<T
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值