标题rand与srand之间的分析
1. 关于随机数的使用:
下面我写了一个简单的数学题联系软件:
代码如下:
#include <stdio.h>
#include "stdlib.h"
int main(){
int a, b ,c;
char d;
while(1)//无限循环,一直为真
{
a=10+rand()%90;
b=10+rand()%90;
printf("\n%d+%d=?",a,b);
scanf("%d",&c);
while(c!=a+b)
{
printf("try again!");
scanf("%d",&c);
}
printf("good!");
printf("continue?(y/n)");
scanf("\n%c",&d);
if(d=='n'||d=='N')//但输入n,N,break跳出循环
break;
}
}
标题关于种子的理解
下面有两段代码看看有什么不同:
标题
1
#include<stdio.h>
#include"stdlib.h"
int main(){int i=10;
for(int i=0;i<10;i++){
int a=rand()%100;
printf("a=%d%",a)
}
}
#include<stdio.h>
#include"stdlib.h"
int main(){int i=10;
for(int i=0;i<10;i++){
srand(1);
int a=rand()%100;
printf("a=%d%",a);
}
}
两个不同有种子的随机数不会发生变化;
而没有种子的随机数发生变化;
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
下面为引用的一部分
模除+加法”的方法
因为,对于任意数,0<=rand()%(n-m+1)<=n-m
因此,0+m<=rand()%(n-m+1)+m<=n-m+m
因此,如要产生[m,n]范围内的随机数num,可用:
int num=rand()%(n-m+1)+m;
其中的rand()%(n-m+1)+m算是一个公式,记录一下方便以后查阅。
比如产生10~30的随机整数:
srand(time(0));
int a = rand() % (21)+10;
作者:chikey
来源:CSDN
原文:https://blog.csdn.net/chikey/article/details/66970397
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。