随机数表法的步骤是首先将调查总体单位进行统一编号并充分混合,再按规定抽样的起点和规定的抽样顺序依次从随机号码表上抽取样本单位号码进行录取。
1、统一编号:即将总体中的所有研究对象进行统一编号, 然后充分混合,目的是使各样本编号均匀分布,符合“机会均等 的原则。
2、确定抽样起点:根据需要或意愿,在表上选择一数字编号,由该数字决定抽样的起点。
3、确定抽样顺序:根据需要或意愿, 选择一定顺序方向,使用该种顺序方向进行抽取。
4、录取号码:根据抽样起点和抽样顺序进行依次录取号码,直至录取到所需抽取的样本数满为止。
#导入随机数模块
import random
#定义一个空的数组,用作取样表
reList = []
#为取样表赋值,1~100
for i in range(1,101):
reList.append(i)
#使用sample方法,取3个随机数
res = random.sample(reList,k=3)
print("三个随机数是:{}".format(res))
#include<bits/stdc++.h>using namespace std
int main()
{
//多定义一个c,且将m所有元素的值初始化为0
int a,b,c,h,t(0),m[1000]={0}//t是计数器,让每行只显示八个数
L1:cout<<"请输入抽取范围,两个数字间以空格间隔:"<<endl
cin>>a>>b
if(b<=a)
{
cout<<"输入有误,请重新输入"<<endl
goto L1
}
cout<<"请输入抽取人数:"<<endl
cin>>h
cout<<"恭喜以下"<<h<<"位小可爱,他们是:"<<endl
srand(time(0))
L2:
for(int i=1i<=h/*i++*/)
// m[rand()%(b-a+1)+a]++
{
c=rand()%(b-a+1)+a
//这是第1次抽到c
if(m[c]==0)
{
m[c]=1
i++
}
}
// for(int i=ai<=bi++)//防止一个号码被抽到两次
// if(m[i]>=2)
// {
// memset(m,0,1000)
// goto L2
// }
for(int i=ai<=bi++)
{
if(m[i]==1)
{
cout<<i<<" "
t++
}
if(t==8)
{
cout<<endl
t=0
}
}
cout<<endl
system("pause")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)