c语言 要为产生的随机数加上权重 如在6-18内产生100个随机数,6-9出现频率为25%,10-14为50%,15-18为25%
#include<stdlib.h>#include<stdio.h>#include<time.h>main(){inti,j;srand((unsigned)time...
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
main()
{ int i,j;
srand((unsigned)time(NULL));
for(i=0;i<100;i++)
printf("%d\t",rand()%(6-18+1)+6);
} 展开
#include<stdio.h>
#include<time.h>
main()
{ int i,j;
srand((unsigned)time(NULL));
for(i=0;i<100;i++)
printf("%d\t",rand()%(6-18+1)+6);
} 展开
2个回答
展开全部
这样改吧:
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
void main()
{
扒团int i,j;
srand((unsigned)time(NULL));
for(i=0;i<100;i++)
{
j=rand()%100;
if(j<25) //6到10的25%
{
j=rand()%10;
while(j<6)
j=rand()%10;
}
else if(j<75) //11到14的50%
{
j=rand()%15;
while(j<10)
j=rand()%15;
}
else //15到18的25%
{
j=rand()%19;
while(j<15)
j=rand()%19;
}
printf("%d\t"缓中,j);
扰此山 }
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询