范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

C随机数生成

  C++中生成随机数:需要用到的函数,一个是rand(),该函数只返回一个伪随机数。生成随机数之前必须先调用srand()函数。生成随机数#include iostream; #include ctime; #include cstdlib;  using namespace std;  int main () {    int i,j;     // 设置种子    srand( (unsigned)time( NULL ) );     /* 生成 10 个随机数 */    for( i = 0; i  10; i++ )    {       // 生成实际的随机数       j= rand();       cout "随机数: "  j  endl;    }     getchar();       return 0;   }
  (1)说明
  srand函数是随机数发生器的初始化函数。
  (2)原型: class="marked">void srand(unsigned seed);
  (3)用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如:srand(1);直接使用 1 来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time 函数来获得系统时间,它的返回值为从 00:00:00 GMT, January 1, 1970 到现在所持续的秒数,然后将 time_t 型数据转化为(unsigned)型再传给 srand 函数,即: srand((unsigned) time(&t)); 还有一个经常用法,不需要定义time_t型t变量,即: srand((unsigned) time(NULL)); 直接传入一个空指针,因为你的程序中往往并不需要经过参数获得的t数据。 生成指定范围的随机数第一种#include iostream; #include ctime; #include cstdlib;  using namespace std;  int main () {    int i,j;     // 设置种子    srand( (unsigned)time( NULL ) );     /* 生成 10 个随机数 */    for( i = 0; i  10; i++ )    {       // 生成实际的随机数       j= rand();       cout "随机数: "  j % 100  endl;    }     getchar();       return 0;   }
  或者可以在宏定义中顶一个random(int number)函数: #include iostream; #include ctime; #include cstdlib; #define random(x)(rand()%x) using namespace std;  int main () {    int i,j;     // 设置种子    srand( (unsigned)time( NULL ) );     /* 生成 10 个随机数 */    for( i = 0; i  10; i++ )    {       // 生成实际的随机数       cout "随机数: "  random(100)  endl;    }     getchar();       return 0;   }
  第2种
  使用 rand() 和 srand() 产生指定范围内的随机整数的方法:"模除+加法"的方法。如要产生 [m,n] 范围内的随机数 num,可用:int num=rand()%(n-m+1)+m;(即rand()%[区间内数的个数]+[区间起点值])
  例如:使用随机数来发红包: #include iostream; #include ctime; #include cstdlib; #include iomanip; #include math.h;  using namespace std;  int main() {     int i, number;     int best;//手气最佳     float total;      cout  "请输入红包金额:";     cin ;; total;     cout  "请输入抢红包人数:";     cin ;; number;     /* 生成随机数 */     // 设置种子     srand((unsigned)time(NULL));     float a[1024];//保存每个人的随机数。最多支持1024个人抢红包。     float b[1024];//保存每个人获得的红包金额。     float suma = 0;//随机数总和。     float sumb = 0;//红包总和。     int max = 0;     for (i = 0; i  number; i++)     {         // 生成实际的随机数         a[i] = rand() % 100;          if (a[i] ; max){             max = a[i];             best = i;//获取手气最佳         }         suma += a[i];     }      for (i = 0; i  number - 1; i++)     {         b[i] = a[i] / suma * total;//按照随机数计算每个人实际获得的金额         sumb += round(b[i] * 100) / 100.0;//将红包金额保留两位小数         //输出信息         cout  "第"  setiosflags(ios::right) setw(3)  i + 1               "个人的红包是:"  setiosflags(ios::right)  setw(6)               setiosflags(ios::fixed)  setprecision(2)               round(b[i] * 100) / 100.0 ;         if (best == i){             cout  "(手气最佳)"  endl;         }         else {              cout  endl;         }     }     //最后一人的红包金额等于总金额减去前面的金额。     cout  "第"  setiosflags(ios::right)         setw(3)  number  "个人的红包是:"          setiosflags(ios::right)  setw(6)  setiosflags(ios::fixed)          setprecision(2)  round((total - sumb) * 100) / 100.0;     if (best == number - 1){         cout  "(手气最佳)"  endl;     }     else {          cout  endl;     }      system("pause");       return 0;   }
  说明:
  1、setprecision(n)与setiosflags(ios::fixed)
  setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。
  2、setw(3)
  setw(n) 设域宽为n个字符这个控制符的意思是保证输出宽度为n。
  如:coutsetw(3)1setw(3)10setw(3)100;
  输出结果为1 10100 (默认是右对齐)
  当输出长度大于3时(1000),setw(3)不起作用 setioflags(ios::fixed) 固定的浮点显示 setioflags(ios::scientific) 指数表示 setiosflags(ios::left) 左对齐 setiosflags(ios::right) 右对齐 setiosflags(ios::skipws 忽略前导空白 setiosflags(ios::uppercase) 16进制数大写输出 setiosflags(ios::lowercase) 16进制小写输出 setiosflags(ios::showpoint) 强制显示小数点 setiosflags(ios::showpos) 强制显示符号
  例如: coutsetiosflags(ios::fixed)setiosflags(ios::right)setprecision(2):输出一个右对齐的小数点后两位的浮点数。 setprecision(n):控制输出流显示浮点数的数字个数。 setiosflags(ios::fixed):用定点方式表示实数。 iso::right :在指定区域内右对齐输出
  Qt资料领取(视频教程+文档+代码+项目实战)
  原文链接:C++随机数生成-QT开发中文网

小学生英语绘本故事推荐和学前不同,进入小学之后,孩子们的学习能力变强了,这个时候阅读英文绘本的目标也就不一样了。挑选的绘本难度可以适当增加,读书时以精读的方式为主,还可以学习书中的一些单词句式,为此,格孩子痱子湿疹皮肤瘙痒外用方夏天必备那天我提了一句痱子湿疹外用方,好几位都私信问我,今天我就把这个方子发出来哈。我自己有次脖子上长了一块皮损,有点痒,为了验证这个外用方的作用,只用这个方子涂抹,确实有效。前两天有个孩A股一个暗示来了,历史或将重演?导语A股一个暗示来了,历史或将重演?大A有句话不争,最后一个铜板,不吃,最后一波走势啥意思?宁在鱼头买,不在鱼尾追,炒股就是炒人性,大涨时刻贪婪,大跌恐惧,人声鼎沸的走势,要懂得,具俊晔公开和大S的结婚照,23年前一见钟情非S不娶,婚姻很幸福一边是汪小菲多次陷入舆论风波,一边是大S和老公不停放闪,差距也太大了。近日,具俊晔回到韩国后,因为和大S的婚事让他在韩国的人气倍增。在综艺节目中,他不但公开了和大S的结婚照,还谈了中国游泳队首金!20岁奥运冠军创历史,队友从倒数第一冲到第32022年游泳世锦赛,中国代表团再添一金!在女子200米自由泳决赛,杨浚瑄夺金,另一位中国小将汤慕涵则是拿到铜牌。20岁的杨浚瑄创造了新的历史,这是她个人第一枚世界大赛的金牌。可能新机vivoS15系列到来,vivoS12爆降至大米价,创历史记录日前,vivo的新机vivoS15系列的到来,让很多网友大吃一惊。作为vivoS系列的新成员,这款产品不仅拥有强大的综合实力,在设计上也体现了vivo独特的美学,呈现出高级感。日前新加坡航空入境中国大陆航班计划近期新加坡航空公布了新加坡至中国大陆7至9月航班计划,有计划从新加坡转机入境大陆的旅客,可以提前做好准备。此次公布的航班包括三个中国大陆航点,分别是上海重庆和深圳。其中新加坡至上海一台三年前的华为P30Pro,放现在,相当于什么价位的手机?一台两年前256G版本的华为P30Pro放现在,相当于什么价位的手机?小编购买了一台256G版本的华为P30Pro,深度体验后和大家分析一下。先说性能搭载麒麟980处理器,作为一款15岁入选美国男篮,创造历史!号称百年一遇的天才,预定NBA?近日,美国U17男篮国青队公布了训练营入选名单。上个月刚被评为2025届全美第一的天才前锋CooperFlagg,以15岁零四个月的年龄,成为史上最年轻入选美国U17男篮的球员。除20年前进入世界杯八强的主帅现在身在何方?四位曾来到中国捞金20年前的世界杯是首次在亚洲举办,大家还记得当年杀入八强的队伍有哪些吗?分别是巴西,德国,土耳其,韩国,美国,西班牙,英格兰,塞内加尔。20年过去了,那么大家又知道当年这八个国家队还有谁记得,十年前苹果手机,肾机的称号是怎么诞生的吗?2010年,iphone4横空出世,集万千宠爱于一机。Fa售一年后,价格不降反增,更是被炒到了一万元的天价。如果,不是这次的意外,他将会幸福快乐地度过一生。为了购买iphone4,
韦斯特在乞讨视频中打破沉默并透露他的未来计划最近,一些前NBA球员德隆特韦斯特在弗吉尼亚州街头乞讨和流浪的视频在网上疯传。TMZ体育频道的镜头追上了这位38岁的明星,现在他也打破了对上述片段的沉默。当被问及他是否还好时,韦斯安防视频监控系统中的一体化与高速球型摄像机一一体化彩色CCD摄像机摄像机枪机,一般需要配置上相应的镜头才能应用。现在,有很多厂家,利用14英寸的CCD传感器,采用DSP内置了可以自动聚焦(AutoFocus)的16倍(如F一个不良信号,调整加剧?A股,周三行情预判周二的行情,又是一根十字星,连续两天,不是冲高回落,就是探底回升,对于大多数而言,这个行情没有任何参与的欲望,因为高位十字星,指标背离,分析师盲目唱空行情,不会因为大家的唱空,不想从年轻人为什么换不动手机了到消费降级这届年轻人好带了今天在网上看到一个热搜,说是为什么年轻人已经开始换不动手机了?从自身体验来说,前些年,每当苹果发布新苹果的时候,就会蠢蠢欲动,希望抢下新发布的手机。但是这几年,不论发布什么东西,都今年618,荣耀逆势荣耀凭什么?每年的618和双11,对于中国智能手机行业来说,都是管窥其格局与走势的绝佳窗口。今年的618尤其如此,因为今年上半年实在是非常特别全球经济承压导致消费疲软,信通院披露的数据显示,今企业数字化转型进入深水区,技术类人才持续受雇主青睐2022年毕业季来临,多家招聘平台与研究院出具就业白皮书与研究报告,解读当下就业趋势与变动。2022瀚纳仕大中华区科技行业薪酬指南显示,2022年,新冠疫情起伏不定,国际局势不断变亚洲的纽约菲律宾首都马尼拉的经济实力有多强悍?这几年我们惊叹于东南亚的越南经济快速发展,往往忽略了区域内还有其他国家与之相比并不逊色,比如连续6年经济增长率保持6以上增长的菲律宾。今年一季度,菲律宾GDP同比增长8。3,位居东分享3只首板涨停且后期有望继续上涨的优质个股!(附分析)众生药业基本面中药,新冠治疗,肝炎,眼科医疗概念公司亮点产品覆盖眼科心脑血管呼吸消化等疾病领域,产品结构合理主营业务药品研发生产销售销售收现率达到110。08,现金回收速度快当前股格力电器312它618战火熊熊,董明珠就是这么拼写在开盘前据说618期间家电销售火爆,格力电器同门师兄弟美的集团发布如下信息据说董明珠也很拼,618期间,几乎天天直播。格力电器战绩如何呢?根据最新发布的格力电器2022年度61870后,一晃就老了(读到流泪)70后,奔五的年纪了,老大不小了曾经以为老去离着我们很远很远,可是走着走着,就人到中年了。这一路走来,想要的成绩,没有想要的感情,变了想做的事情,没做想去的地方,没去。70后,真的李子柒的生活是很多人向往的,你幻想过吗?对于个人来讲李子柒的生活的确是很向往幻想过的。据说李子柒的田园生活被无数人憧憬着,李子柒的田园生活与真正的诗遥远,李子柒的田园生活是新时代的幸福生活,所谓新的幸福,就是从金钱时间场