c++ random

来源:互联网 发布:java站内搜索引擎 编辑:程序博客网 时间:2024/05/16 05:19

random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过。但在C语言中int random(num)可以这样使用,它返回的是0至num-1的一个随机数。

 可改用C++下的rand函数来实现。

rand()%n   范围  0~n-1

rand()主要是实现 产生随机数,其他我们在这里可以无视他

显然任意 一个数  rand()%n  范围显然是  0~n-1;

那么 如何产生 n~m的数呢? 一样的   我们只要对rand()进行一些 符号操作就行了;

n+rand()%(m-n+1);    这样就可以了

这样我们 就只有 种子 和 浮点数的没有分析了,

 

下面来说rand()的用法 ,浮点数的放在最后面讲 :一般在用这个之前 都要  初始化 一个种子 ,但是  你不写的话,系统会给你 一个默认的种子,下面是我们自己输入种子的代码;

int seed;scanf ("%d",&seed);srand(seed);cout<<rand()<<endl;
#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){    int arr[15];    //srand(time(NULL));    int seed;    while(1){    scanf("%d",&seed);    srand(seed);    for (int i=0; i<15; i++)         printf ("%d\t",rand()%10);    printf ("\n");      }    return 0;}

经过下图的比较发现,每一个种子都是保持着这个状态的随机变量值,会存在系统里面;


因此,我们要对这个初始化种子  保持着  时刻不同;也就是说 我们还是用 srand(time(NULL));比较好

用如下代码比较合适:

#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){    //int arr[15];    srand(time(NULL)); for (int i=0; i<15; i++)         printf ("%d\t",rand()%10);    printf ("\n");      while (1);    return 0;}

好了,我们现在讲下最后一点---------浮点数的随机产生

rand()%n   =========== 0~n-1     那么  我们再除以 n  就行了

可以表示为:   (rand()%n)/(n*1.0)      //这里注意下 隐式转换   低------>高

下面给出一个范例:

#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){    int arr[15];    //srand(time(NULL));    int seed;    while(1){    scanf("%d",&seed);    srand(seed);    for (int i=0; i<15; i++)         printf ("%lf\t",(rand()%10)/10.0);    printf ("\n");      }    return 0;}


如果要  更精确呢?像0.11  这样的呢???   道理是一样的  

 我们可以输出   (rand()%n)/(n*1.0)+(rand()%n)/(n*10.0);

由此我们可以总结出规律:p 表示精确位数

                                                                  {  p }

                                                                  1.......1*(rand()%n)/10^p    


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 龟头和皮分开了怎么办 微信买票被骗了怎么办 撞车了我的全责怎么办 蒙田包包里面不耐脏怎么办? 摩托车转向灯不会打怎么办 浓硫酸弄到脸上怎么办 钥匙被锁在家里怎么办 有奶宝宝吸不出来怎么办 奶涨宝宝吸不出来怎么办 高铁票未取误点怎么办 飞猪上12306占座失败怎么办? 新生儿肚脐还没有脱落发炎怎么办 蹲坑被纸巾堵了怎么办 老公有外遇老婆不想离婚怎么办 结婚十年妻子出轨该怎么办 初生儿眼睛多眼屎怎么办 被丝袜脚摩擦过瘾了怎么办 老公在卧室装摄像头怎么办 听了鬼故事害怕怎么办 看完鬼片害怕睡不着怎么办 晚上看了鬼片怎么办 说话不经过大脑考虑怎么办 我太受欢迎了怎么办动漫结局 狗胃不好总呕吐怎么办 比格犬晚上叫怎么办 玻尿酸隆鼻变宽了怎么办 打玻尿酸鼻子变宽怎么办 鼻炎的人感冒了怎么办 小孩上幼儿园反复感冒怎么办 3岁宝宝感冒鼻炎怎么办 鼻炎犯了鼻子不通气怎么办 食物呛到鼻子里怎么办 胃疼引起的焦虑怎么办 泰迪犬发生口腔亏痒怎么办? 俩鼻子都堵了怎么办 2岁宝宝鼻甲肿大怎么办 感冒10多天不好怎么办 宝妈鼻炎犯了怎么办 鼻炎犯了好多黄鼻涕怎么办 空调吹多了上火怎么办 宝宝感冒鼻塞流鼻涕口臭怎么办