c语言写采样函数 采样函数定义

无放回简单随机抽样方法抽出4个随机数用C语言怎么写,意要求采用编程语言自己设计程序完成(1)
#include "stdio.h"
#include stdlib.h
#include "time.h"
int main(int argc,char *argv[]){
int a[]={20,31,50,52,56,60,63,72,110,112},i,k,t,x;
srand((unsigned)time(NULL));
for(k=10,i=0;i4;i++){
printf("%d ",a[t=rand()%k]);
x=a[t],a[t]=a[--k],a[k]=x;
}
printf("\n");
return 0;
}
运行样例c语言写采样函数:
(2)
#include "stdio.h"
#include stdlib.h
#include "time.h"
int main(int argc,char *argv[]){
int a[]={20,31,50,52,56,60,63,72,110,112},i;
srand((unsigned)time(NULL));
for(i=0;i4;i++)
printf("%d ",a[rand()%10]);
printf("\n");
return 0;
}
运行样例c语言写采样函数:
(3)
#include "stdio.h"
#include stdlib.h
#include "time.h"
int main(int argc,char *argv[]){
int a[]={20,31,50,52,56,60,63,72,110,112},i,k,t[10];
srand((unsigned)time(NULL));
for(k=i=0;i10;i++)
if(a[i]45)
t[k++]=a[i];
if(!k){
printf("No qualified data, exit...\n");
return 0;
}
printf("%d ",t[rand()%k]);
for(k=i=0;i10;i++)
if(a[i]=45a[i]=65)
t[k++]=a[i];
if(!k){
printf("No qualified data, exit...\n");
return 0;
}
printf("%d %d ",t[rand()%k],t[rand()%k]);
for(k=i=0;i10;i++)
if(a[i]65)
t[k++]=a[i];
if(!k){
printf("No qualified data, exit...\n");
return 0;
}
printf("%d\n",t[rand()%k]);
return 0;
}
运行样例:
C语言的随机抽样怎么编程用rand函数或srand函数
rand和srand的用法
首先c语言写采样函数我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数c语言写采样函数,下面将详细说明 。
rand(产生随机数)
表头文件: #includestdlib.h
定义函数 :int rand(void)
函数说明 :
因为rand的内部实现是用线性同余法做的,c语言写采样函数他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间 。在调用此函数产生随机数前,必须先利用srand()设好随机数种子 , 如果未设随机数种子,rand()在调用时会自动设随机数种子为1 。rand ()产生的是假随机数字,每次执行时是相同的 。若要不同,以不同的值来初始化它.初始化的函数就是srand() 。
返回值:
返回0至RAND_MAX之间的随机整数值 , RAND_MAX的范围最少是在32767之间(int) , 即双字节(16位数) 。若用unsigned int 双字节是65535,四字节是4294967295的整数范围 。
0~RAND_MAX每个数字被选中的机率是相同的 。
范例:
/* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考
srand()*/
#includestdlib.h
main()
{
int i,j;
for(i=0;i10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
执行:
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6 //再次执行仍然产生相同的随机数
srand(设置随机数种子)
表头文件:#includestdlib.h
定义函数:void srand (unsigned int seed);
函数说明:
srand()用来设置rand()产生随机数时的随机数种子 。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed 。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样 。
范例
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#includetime.h

推荐阅读