长度为 100万 的序列,从中随机抽取 25万 个数据。
算法:
1、先在 0-s 里随机取一数 [R];
2、将 [R] = [0], [0]将不再使用
3、先在 1-s 里随机取一数 [R1];
...
并列出随机数取了三次以上的数据
/**
* 长度为 s 的序列,从中随机抽取 n 个数据。
* 算法:
* 1、先在 0-s 里随机取一数 [R];
* 2、将 [R] = [0], [0]将不再使用
* 3、先在 1-s 里随机取一数 [R1];
* ...
* @param s
* @param n
* @return
*/
private static int[] getRandom(int s, int n)
{
if(s<=0 || n<=0)
{
throw new RuntimeException("必须:s>0 且 n>0 ");
}
if(s<n)
{
throw new RuntimeException("必须:s>=n ");
}
int[] data = new int[n];
int[] temp = new int[s];
for(int i=0; i<s; i++)
{
temp[i] = i;
}
Random random = new Random();
random.setSeed(System.currentTimeMillis());
for(int i=0; i<n; i++)
{
int idx = random.nextInt(s-i)+i;
data[i] = temp[idx];
temp[idx] = temp[i];
}
return data;
}
private static void print(int[] data)
{
for(int i=0; i<data.length; i++)
{
System.out.println(data[i]);
}
}
/**
* 长度为 s 的序列,从中随机抽取 n 个数据。
* 算法:
* 1、先在 0-s 里随机取一数 [R];
* 2、将 [R] = [0], [0]将不再使用
* 3、先在 1-s 里随机取一数 [R1];
* ...
*
* 并列出随机数取了三次以上的数据
* @param s
* @param n
* @return
*/
private static int[] getRandom02(int s, int n)
{
if(s<=0 || n<=0)
{
throw new RuntimeException("必须:s>0 且 n>0 ");
}
if(s<n)
{
throw new RuntimeException("必须:s>=n ");
}
int[] data = new int[n];
int[] temp = new int[s];
int[] selectCount = new int[s];
for(int i=0; i<s; i++)
{
temp[i] = i;
selectCount[i] = 0;
}
Random random = new Random();
random.setSeed(System.currentTimeMillis());
for(int i=0; i<n; i++)
{
int idx = random.nextInt(s-i)+i;
data[i] = temp[idx];
selectCount[idx]++;
if(selectCount[idx]>3) //并列出随机数取了三次以上的数据
{
System.out.println(selectCount[idx] + ":" + idx);
}
temp[idx] = temp[i];
}
return data;
}
public static void main(String[] args)
{
//Collections.shuffle(null);
getRandom02(1000000, 250000);
}
分享到:
相关推荐
n=3时,Gray码:000,010,011,001, 101,111,110,100 n=4,时,Gray码:0000,0010,0011,0001,0101,0111,0110,0100, 1100,1110,1111,1101,1001,1011,1010,1000 从上面可以看出如下规律:从n=...
序列{B,C,B,A}也是X和Y的一个公共子序列,它的长度为4,而且它是X和Y的一个最长公共子序列,因为X和Y没有长度大于4的公共子序列。 最长公共子序列问题就是给定两个序列X={x1,x2,...xm}和Y={y1,y2,...yn},找出X和...
An,求这个序列中最长的递减子序列的长度M, 以及该序列可以划分成这种子序列的个数N 如序列: 300 250 252 275 200 138 245 折分成的子序列分别为 300 275 200 138 252 245 250 其中最长序列为: 300 275 200 138 ...
用java语言编写的产生一个N位随机序列的代码
时间序列预测数据
m序列的生成,m序列的抽取,m序列的自相关互相关特性,m序列的优选对的选取
m序列的生成,m序列的抽取,m序列的自相关互相关特性,m序列的优选对的选取
给定n 个整数组成的序列,现在要求将序列分割为m 段,每段子序列中的数在原序列中连续排列。如何分割才能使这m段子序列的和的最大值达到最小? 编程任务: 给定n 个整数组成的序列,编程计算该序列的最优m 段分割,...
分享一个时间序列分析数据集分享一个时间序列分析数据集分享一个时间序列分析数据集分享一个时间序列分析数据集分享一个时间序列分析数据集
128个单变量时间序列数据UCR数据集 ,可以用于进行时间序列分类等任务,包含多种补贴类型的单变量时间序列数据。 解压密码:attempttoclassify 或者 someone
时间序列的随机模型分析时间序列的随机模型分析时间序列的随机模型分析
使用一维卷积神经网络处理序列数据,数据类型为一维
DNA序列随机生成_跑最长公共子序列.c
基于jupyter-notebook与随机森林对时间序列数据进行回归预测
在实际应用中,直接利用DSP产生任意长度伪随机序列的方法,可以为系统设计和测试带来便利。文中基于线性同余算法,结合Analo Gdevices公司DSP芯片TigerSHARC20XS的运算结构,设计出一种利用寻址递减长度序列,从而产生...
EE课程 数列递增子序列 数据与算法 实验报告
用于进行Python时间序列分析的数据集,包含苹果、微软等公司自1990年以来每天的股票价格数据,共5473条,可以用作做时间序列分析。
最长不升公共子序列问题的动态规划算法,结果求出了子序列的长度以及该子序列是什么,采用的是Java。
该数据集描述包括样本数量、类别数、特征数、时间序列长度,除了Libras数据集的时间序列长度为等长的,其他数据集时间序列长度为不等长。
MATLAB序列随机性测试,This file was generated automatically by the Mathematica front end. It contains Initialization cells from a Notebook file, which typically will have the same name as this file ...