a***r 发帖数: 420 | 1 如果我有个dataset里有n个subject
想要从里面随机选取p%,即int(n*p%)个
在c++里如何实现呢
我开始想得比较简单:
int n;
int p;
main (int argc,char * argv[]) {
int arg=0;
n=atoi(argv[++arg]);
p=atoi(argv[++arg]);
double AOD;
srand((unsigned)time(NULL));
for (int i =0; i
{
AOD=((double) rand() / (RAND_MAX+1)) ;
if (AOD
do something I need
}
}
std::cin.ignore( std::numeric_limits::max(), '\n' );
return(0);
}
可是显然这样我不能控制被选数的sub的数量,只能是个大概
请问版上达人,应该如何修改(或者用别的思路)
实现从n个subject里随机(uniformly)选取np/100个呢?
谢谢! | c****p 发帖数: 6474 | 2 生成n个随机数,排序,记录随机数排序前的下标。
把排在前np/100个的原下标取出来
【在 a***r 的大作中提到】 : 如果我有个dataset里有n个subject : 想要从里面随机选取p%,即int(n*p%)个 : 在c++里如何实现呢 : 我开始想得比较简单: : int n; : int p; : main (int argc,char * argv[]) { : int arg=0; : n=atoi(argv[++arg]); : p=atoi(argv[++arg]);
|
|