如何产生一个从x到y的k个随机数 Random(int x,int y ,int k)
来源:互联网 发布:java 函数形参和实参 编辑:程序博客网 时间:2024/05/07 04:27
1.设置随机数种子
若不进行设置,系统默认为种子为1,那么每次运行程序产生的随机数是一样的;
通过void srand(unsigned int seed)来设置种子
为了使每次运行程序产生的一组随机数不一样,就要同步改变种子的值
因为系统时间每个时刻都不一样,所以可以利用time(0)获取系统时间作为种子
所以: srand (time(0))可以实现随机数的不可预见性
2.控制随机数产生的范围
rand( )的原始范围是(0,RAND_MAX),RAND_MAX的值包含在头文件stdlib.h当中;
若要得到10以内的值(0-9),可以通过除10取余的方式:rand( )%10;
同理,若要得到n以内的值(0,n-1), 则:rand( )%n
如果想得到特点范围[x,y]的随机值,可以分成两步:
①先得到【0,y-x】的值,即y-x+1以内的值:rand( )%(y-x+1);
②加上x,即可得到【x,y】的值:rand( )%(y-x+1)+x
综上所述:在x,y之间产生k个随机数
void Random(int x,int y,int k)
{
srand(time(0));
int i;
for(i=1;i<=k;i++)
{
printf("%d ",rand( )%(y-x+1)+x)
}
}
0 0
- 如何产生一个从x到y的k个随机数 Random(int x,int y ,int k)
- union myun { struct{ int x; int y; int z; }u; int k; }a;
- int *x, y; int* x, y;
- Scoller,scrollTo(int x, int y),scrollBy(int x, int y)的区别
- int x/*test*/y;的结果是?
- 参数的引用传递 swap(int &x,int &y)
- android中View的scrollBy(int x,int y)和scrollTo(int x,int y)的区别
- 滑动中scrollTo(int x,int y);和scrollBy(int x,int y)的区别(经典)
- View.scrollTo(int x, int y)与View.scrollBy(int x, int y)
- y=x++ + ++x(int x=0)的结果?
- CDC::TextOut(int x, int y, LPCTSTR lpszString, int nCount
- create function GetMax(@x int,@y int) returns int
- String的indexOf(),lastIndexOf(),substring(int x),substring(int x , int y)方法 StringBuffer
- Math.random()随机产生【x,y)的随机数
- public void setPixels (int[] pixels, int offset, int stride, int x, int y, int width, int height)
- void glutPositionWindow(int x, int y); 窗口API(2)
- android view.scrollTo(int x,int y)注意事项
- Graphics.drawString(String str,int x,int y)注意事项
- BZOJ 3203 Sdoi2013 保护出题人 凸包+三分
- DVWA安装
- 安卓编译系统简介
- Step into Gradle - 06 - 文件管理
- WPF 颜色
- 如何产生一个从x到y的k个随机数 Random(int x,int y ,int k)
- linux mv命令
- shell学习第七天----基础正则表达式(BRE)
- cocoStudio: button触摸事件响应
- java对象的内存布局(二):利用sun.misc.Unsafe获取类字段的偏移地址和读取字段的值
- 基于am3358的led跑马灯测试
- 带箭头的曲线(自定义的贝塞尔曲线和首次启动 app的引导界面)
- GridView的标准写法
- 微信支付 V3版