源代码如下:
创新互联公司专注于企业成都全网营销、网站重做改版、怀宁网站定制设计、自适应品牌网站建设、H5开发、商城建设、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为怀宁等各大城市提供网站开发制作服务。
#include stdio.h
#include stdlib.h
#include stdbool.h
#include unistd.h
#define a 16807//or 48271
#define m 2147483647
#define q (m/a)
#define r (m%a)
static long int seed = 1;
//return rand long in [1,m]
long int pm_rand(void)
{
long hi = seed / q;
long lo = seed % q;
long tmp = a * lo - r * hi;
if(tmp 0)
seed = tmp;
else
seed = tmp + m;
return seed;
}
int main(void)
{
for(int i = 0;i 100;++i)
printf("%ld ",pm_rand());
puts("");
return 0;
}
扩展资料
不指定范围产生随机数的源代码
#includestdio.h
#includestdlib.h
int main()
{
int i;
for(i=0; i10; i++) //随机产生10个数。
{
printf("%d\n", rand());
}
return 0;
}
一楼的感觉第二个数的产生过于麻烦
二楼的不能用int型,因为楼主的要求是1000000内,可能就是999999,int不够用
#include
#include
#include
#define
rand_max
1000000
void
main()
{
long
num1,num2;
time_t
t;
srand((unsigned)
time(t));/*用时间初始化随机函数*/
int
t;
scanf("%d",t);
for(int
i=0;i2*t;i++)
{
num1=rand()%1000000;//产生1000000内的第一个随机数
num2=rand()%num1;//产生num1内的第二个随机数
printf("%ld\t%ld\n",num1,num2);
}
getchar();
getchar();
}
先设置种子数srand((unsigned
int)time(0)).然后用rand()%100就可以产生0-100的不同随机数了,当然要包括头文件stdlib.h和time.h.
简单一点的,r,t分别产生两组随机数,你往后加参数即可:
#includestdlib.h
#includestdio.h
int main(void){
int r=srandom((int)time(0));;
int t=srandom((int)time(0));;
printf("%d %d\n",r,t);
return 0;
}