首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从数组中获取n个不重叠的m大小的样本

是一个常见的数据处理需求,可以通过以下步骤来实现:

  1. 首先,确保数组长度足够容纳所需的样本数,即 n * m
  2. 然后,从数组中随机选择一个起始索引,范围在 0数组长度 - (n * m) 之间。
  3. 接下来,依次从起始索引开始,每次取出长度为 m 的子数组作为一个样本,并将其存入结果数组中。每次取完后,将起始索引向后移动 m 个位置。
  4. 重复步骤 3,直到获取到所需的 n 个样本。
  5. 最后,返回结果数组,其中包含了 n 个不重叠的 m 大小的样本。

这样实现的好处是可以随机选择起始索引,从而保证样本的随机性。同时,通过确保样本之间不重叠,可以避免数据重复导致的干扰。

以下是一个示例的 JavaScript 代码实现:

代码语言:txt
复制
function getSamplesFromArray(arr, n, m) {
  const result = [];
  
  // 确保数组长度足够容纳所需的样本数
  if (arr.length < n * m) {
    throw new Error('数组长度不足');
  }
  
  // 从数组中随机选择起始索引
  const startIndex = Math.floor(Math.random() * (arr.length - n * m + 1));
  
  // 依次获取样本
  for (let i = 0; i < n; i++) {
    const sample = arr.slice(startIndex + i * m, startIndex + i * m + m);
    result.push(sample);
  }
  
  return result;
}

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const n = 2;
const m = 3;
const samples = getSamplesFromArray(array, n, m);
console.log(samples);

在腾讯云的产品中,与数据处理相关的服务有许多选择,例如:

以上仅为腾讯云的部分相关产品介绍,更多产品和详细信息,请访问腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

- 长度为mint数组随机取出n元素,每次取元素都是之前未取过

题目:长度为mint数组随机取出n元素,每次取元素都是之前未取过 Fisher-Yates洗牌算法是由 Ronald A.Fisher和Frank Yates于1938年发明,后来被Knuth...用洗牌算法思路1、2、3、4、5这5,随机取一数 4被抽中概率是1/5 5被抽中概率是1/4 * 4/5 = 1/5 2被抽中概率是1/3 * 3/4 *...(t)); } } ---- Knuth洗牌算法 在上面的介绍发牌过程, Knuth 和 Durstenfeld 在Fisher 等人基础上对算法进行了改进,在原始数组上对数字进行交互,...该算法基本思想和 Fisher 类似,每次从未处理数据随机取出一数字,然后把该数字放在数组尾部,即数组尾部存放是已经处理过数字。...时间复杂度为O(n), 空间复杂度为O(n) //O(N)time //O(N)space void knuth(int n, int m) { int[] arr = new int[n];

1.7K10
  • 2022-04-09:给你两长度分别 nm 整数数组 nums 和 multipliers ,其中 n >= m数组下标 1 开始 计数。

    2022-04-09:给你两长度分别 nm 整数数组 nums 和 multipliers ,其中 n >= m数组下标 1 开始 计数。 初始时,你分数为 0 。...你需要执行恰好 m 步操作。在第 i 步操作( 1 开始 计数),需要: 选择数组 nums 开头处或者末尾处 整数 x 。 你获得 multipliersi * x 分,并累加到你分数。...将 x 数组 nums 移除。 在执行 m 步操作后,返回 最大 分数。 力扣1770。 答案2022-04-09: 样本对应模型。 代码用golang编写。...:= len(A) M := len(B) dp := make([][]int, M+1) for i := 0; i < M+1; i++ { dp[i] = make([]int, M+...1) } for L := M - 1; L >= 0; L-- { for j := L + 1; j <= M; j++ { R := N - M + j - 1 indexB

    38910

    【动态规划】将一包含m整数数组分成n数组,每个数组和尽量接近

    1 背景 ClickHouse集群缩容,为保证数据丢失,计划将需要缩容节点上数据,迁移到其他节点上,保证迁移到每个机器上数据量尽量均衡。...2 抽象 将一包含m整数数组分成n数组,每个数组和尽量接近 3 思路 这个问题是典型动态规划问题,理论上是无法找到最优解,但是本次只是为了解决实际生产中问题,而不是要AC,所以我们只需要找到一相对合理算法...如果第一数num小于avg,我们将这个数加入到数组,然后我们需要找到一(或若干)个数,使得其和更接近delta = avg-num, 继续遍历数组,若发现某个数k==delta,将k加入到数组,结束本轮寻找...22 3, sum = 53 arr 3 is : 27 10 6 5 2 2 1, sum = 53 4 实现 // 将数组分成n数组,每个数组和尽量接近 func GetAvgArr(numberList...mean, math.Pow(mean, 2)) avgArrays = append(avgArrays, transFloatToIntList(arr)) } // 将已经形成一组数据数组移除

    6.8K63

    c++反转链表m位置到n位置元素_环形数组最大子数组

    给定一由整数数组 A 表示环形数组 C,求 C 非空子数组最大可能和。 在此处,环形数组意味着数组末端将会与开头相连呈环状。...(形式上,当0 = 0 时 C[i+A.length] = C[i]) 此外,子数组最多只能包含固定缓冲区 A 每个元素一次。...2,3,-2] 输出:3 解释:从子数组 [3] 得到最大和 3 示例 2: 输入:[5,-3,5] 输出:10 解释:从子数组 [5,5] 得到最大和 5 + 5 = 10 示例 3: 输入:[3...,-1,2,-1] 输出:4 解释:从子数组 [2,-1,3] 得到最大和 2 + (-1) + 3 = 4 示例 4: 输入:[3,-2,2,-3] 输出:3 解释:从子数组 [3] 和 [3,-2,2...] 都可以得到最大和 3 示例 5: 输入:[-2,-3,-1] 输出:-1 解释:从子数组 [-1] 得到最大和 -1 题解 求前缀和,对于每一j,找到[j – k,j)中最小sj,所以可以想到使用滑动窗口求解

    1.4K20

    2024-07-06:用go语言,给定一0开始长度为n整数数组nums和一0开始长度为m整数数组pattern,

    2024-07-06:用go语言,给定一0开始长度为n整数数组nums和一0开始长度为m整数数组pattern,其中pattern数组元素只包含-1、0和1。...我们定义“匹配”数组,对于一大小m+1数组nums[i..j],如果对于pattern数组每个元素pattern[k]都满足以下条件: 1.如果pattern[k]为1,则nums[i+...解释:模式 [1,1] 说明我们要找数组是长度为 3 且严格上升。在数组 nums ,子数组 [1,2,3] ,[2,3,4] ,[3,4,5] 和 [4,5,6] 都匹配这个模式。...大体步骤如下: 1.将 pattern 数组长度记录为 m,接着为了方便处理,在 pattern 后面添加一号码 2。...2.遍历 nums 数组,将 pattern 内容替换为以 cmp.Compare 比较后得到结果。 3.初始化一结果变量 ans,用于存储匹配模式数组数量。

    10320

    2024-07-13:用go语言,给定一0开始长度为n整数数组nums和一0开始长度为m整数数组pattern,

    2024-07-13:用go语言,给定一0开始长度为n整数数组nums和一0开始长度为m整数数组pattern,其中pattern数组仅包含整数-1、0和1。...一数组nums[i..j]大小m+1,如果满足以下条件,则我们称该子数组与模式数组pattern匹配: 1.若pattern[k]为1,则nums[i+k+1] > nums[i+k]; 2.若...2.countMatchingSubarrays函数作用是计算匹配模式数组patternnums子数组数量。它首先将模式数组pattern长度赋值给m,然后在模式数组末尾添加一值为2元素。...接着遍历nums数组,将每相邻两个数大小关系转换为-1、0或1,并存储在pattern数组。 3.根据Z算法,创建一数组z用于存储匹配长度。...4.最后,在z数组m+1值开始遍历,如果匹配长度等于模式数组长度m,则将计数器ans加一。 综上所述,总时间复杂度为O(n)(n为nums数组长度),总额外空间复杂度为O(n)。

    8720

    2021-04-05:给两长度分别为MN整型数组...

    2021-04-05:给两长度分别为MN整型数组nums1和nums2,其中每个值都不大于9,再给定一正数K。 你可以在nums1和nums2挑选数字,要求一共挑选K,并且要从左到右挑。...返回所有可能结果,代表最大数字结果。 福大大 答案2021-04-05: 自然智慧想不到,需要练敏感度。 1.动态规划+选元素+双指针合并。无代码。...2.动态规划+选元素+双指针DC3合并。有代码。 2.1.dpi,i是数组序号,j是0,K数,dpi是最优位置。 2.2.arr1和arr2选元素。...2.3.合并arr1选中元素和arr2选中元素,采用dc算法。 2.4.返回最大值。 代码用golang编写。...) //和并挑元素 merge := mergeBySuffixArray(pick1, pick2) //获取最大值 if !

    44510

    2022-12-22:给定一数字n,代表数组长度,给定一数字m,代表数组每个位置都可以在1~m之间选择数字,所有长度为n

    2022-12-22:给定一数字n,代表数组长度, 给定一数字m,代表数组每个位置都可以在1~m之间选择数字, 所有长度为n数组,最长递增子序列长度为3数组,叫做达标数组。...返回达标数组数量。 1 <= n <= 500, 1 <= m <= 10, 500 * 10 * 10 * 10, 结果对998244353取模, 实现时候没有取模逻辑,因为非重点。...// f、s、t : ends数组中放置数字!...// n : 一共长度! // m : 每一位,都可以在1~m随意选择数字 // 返回值:i..... 有几个合法数组!...// 尤其是理解ends数组意义! fn number2(n: i32, m: i32) -> i32 { //repeat(vec!

    89450

    刷题-给定两个大小mn 有序数组 nums1 和 nums2。 请你找出这两有序数组中位数

    题目:给定两个大小mn 数组 nums1 和 nums2。 请你找出这两有序数组中位数 方法:很简单办法就是利用list函数来实现。...=0: temp.extend(nums1[-m:]) if n!...给大家一不一样解题方法,在刷题过程,我们需要优自己思路去解决题目。...目前我刷题只是断断续续开始,我感觉做这样题目的时候呢,首先还是对基础知识掌握,在一就是我们用一我们最熟悉算法去解决。然后去寻找最优算法。...反正他们测试到测试开发中间经历学习, 但是团队内还算比较系统,给我收益很大。当然了,我推荐大家后续走测试开发,还是学习语言,我推荐大家还是使用java。我也开始转向拥抱java。

    84010

    Go语言实现排列组合问题实例(n个数m)

    本文实例讲述了Go语言实现排列组合问题。分享给大家供大家参考,具体如下: (一)组合问题 组合是一基本数学问题,本程序目标是输出n元素m所有组合。...(组合不考虑顺序,即[1,2]和[2,1]属同一组合) 本程序思路(来自网上其他大神): (1)创建有n元素数组数组元素值为1表示选中,为0则没选中。...m一共有多少种取法可直接通过数学公式计算得出,即: //数学方法计算排列数(nm个数) func mathPailie(n int, m int) int { return jieCheng...(n) / jieCheng(n-m) } //数学方法计算组合数(nm个数) func mathZuhe(n int, m int) int { return jieCheng(n) /...(二)排列问题 n个数取出m进行排列,其实就是组合算法之后,对选中m个数进行全排列。而全排列问题在之前文章已经讨论过了。

    4.4K50

    Go语言实现排列组合问题实例(n个数m)

    本文实例讲述了Go语言实现排列组合问题。分享给大家供大家参考,具体如下: (一)组合问题 组合是一基本数学问题,本程序目标是输出n元素m所有组合。...(组合不考虑顺序,即[1,2]和[2,1]属同一组合) 本程序思路(来自网上其他大神): (1)创建有n元素数组数组元素值为1表示选中,为0则没选中。...m一共有多少种取法可直接通过数学公式计算得出,即: 复制代码代码如下: //数学方法计算排列数(nm个数) func mathPailie(n int, m int) int { return...jieCheng(n) / jieCheng(n-m) } //数学方法计算组合数(nm个数) func mathZuhe(n int, m int) int { return jieCheng...(二)排列问题 n个数取出m进行排列,其实就是组合算法之后,对选中m个数进行全排列。而全排列问题在之前文章已经讨论过了。

    1.9K50

    2023-02-12:给定正数N,表示用户数量,用户编号0~N-1, 给定正数M,表示实验数量,实验编号0~M-1, 给定长度为N二维数组A, A

    2023-02-12:给定正数N,表示用户数量,用户编号0~N-1,给定正数M,表示实验数量,实验编号0~M-1,给定长度为N二维数组A,Ai = { a, b, c }表示,用户i报名参加了a号...、b号、c号实验,给定正数Q,表示查询条数给定长度为Q二维数组B,Bi = { e, f }表示,第i条查询想知道e号、f号实验,一共有多少人(去重统计)。...返回每一条查询结果数组。数据描述 : 1 <= N <= 10^5,1 <= M <= 10^2,1 <= Q <= 10^4。...所有查询所列出所有实验编号数量(也就是二维数组B,行*列规模) <= 10^5。来自字节。答案2023-02-12:位操作优化。代码用rust编写。.../ 任何一实验,需要几个整数,能表示所有人谁出现谁没出现?

    52800

    2024-01-03:用go语言,给你两长度为 n 下标 0 开始整数数组 cost 和 time, 分别表示给 n

    2024-01-03:用go语言,给你两长度为 n 下标 0 开始整数数组 cost 和 time, 分别表示给 n 堵不同墙刷油漆需要开销和时间。...3.递归调用时考虑两种情况,选择当前墙刷或者刷,计算出最小开销。 4.该方法在递归调用过程可能会有很多重复计算,效率可能不高。...paintWalls2 函数 1.paintWalls2 函数采用了记忆化搜索方式。 2.定义了一二维数组 dp 用于记录已经计算过结果,避免重复计算。...2.使用一一维数组 dp 保存不同墙数下最小开销。 3.结合循环和动态递推方式,迭代计算每墙最小开销,直到第 n 墙。...• paintWalls3 额外空间复杂度为 O(n),因为它只用了一一维数组保存中间结果。

    16820
    领券