1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      c語(yǔ)言設(shè)置隨機(jī)時(shí)間函數(shù),c語(yǔ)言如何設(shè)置隨機(jī)數(shù)

      C語(yǔ)言srand((unsigned)time(NULL)); 是什么意思

      srand()函數(shù)用來(lái)設(shè)置算法的種子,time(NULL)返回當(dāng)前的時(shí)間,先調(diào)用srand(time(NULL))是把當(dāng)前的時(shí)間作為種子,是程序每次運(yùn)行產(chǎn)生不同的隨機(jī)數(shù)序列。

      成都創(chuàng)新互聯(lián)成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),自適應(yīng)網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:028-86922220

      涉及到三個(gè)概念:

      1、隨機(jī)數(shù):數(shù)學(xué)上產(chǎn)生的都是偽隨機(jī)數(shù),真正的隨機(jī)數(shù)使用物理方法產(chǎn)生的。

      2、隨機(jī)數(shù)種子:隨機(jī)數(shù)的產(chǎn)生是由算術(shù)規(guī)則產(chǎn)生的,srand(seed)的隨機(jī)數(shù)種子不同,rand()的隨機(jī)數(shù)值就不同,倘若每次的隨機(jī)數(shù)種子一樣,則rand()的值就一樣。所以要產(chǎn)生隨機(jī)數(shù),則srand(seed)的隨機(jī)數(shù)種子必須也要隨機(jī)的。

      3、用srand()產(chǎn)生隨機(jī)數(shù)種子

      原型:void srand ( unsigned int seed )。作用是設(shè)置好隨機(jī)數(shù)種子,為了讓隨機(jī)數(shù)種子是隨機(jī)的,通常用time(NULL)的值來(lái)當(dāng)seed。

      擴(kuò)展資料:

      C語(yǔ)言其他產(chǎn)生隨機(jī)數(shù)的方法。

      1、函數(shù)名: rand

      功能: 隨機(jī)數(shù)發(fā)生器

      用法: void rand(void);

      程序例:

      2、函數(shù)名: random

      功能: 隨機(jī)數(shù)發(fā)生器

      用法: int random(int num);

      程序例:

      3、函數(shù)名: randomize

      功能: 初始化隨機(jī)數(shù)發(fā)生器

      用法: void randomize(void);

      程序例:

      參考資料來(lái)源:百度百科--srand

      c語(yǔ)言編程有個(gè)地方不會(huì)?怎么用srand和time函數(shù)生產(chǎn)隨機(jī)數(shù)

      你先要知道,計(jì)算機(jī)并不能產(chǎn)生真正的隨機(jī)數(shù)。他只是使用你提供的一個(gè)初始值,每次對(duì)這個(gè)值進(jìn)行一個(gè)比較復(fù)雜的運(yùn)算(各種位運(yùn)算+奇奇怪怪的計(jì)算,詳情請(qǐng)查閱偽隨機(jī)算法),意思是計(jì)算機(jī)的隨機(jī)數(shù),其實(shí)也是可以根據(jù)他的隨機(jī)函數(shù)算出來(lái)的。。

      srand()函數(shù)是添加隨機(jī)數(shù)種子,其實(shí)就是設(shè)置這個(gè)初始值,如果不要這個(gè)函數(shù)的話,rand()函數(shù)生成的序列是固定的。為了保證每次隨機(jī)值都盡量不同,一般取系統(tǒng)當(dāng)前時(shí)間戳作為隨機(jī)函數(shù)種子,這樣效果較好,于是就有了你看到的代碼srand(time(NULL))

      rand()函數(shù)是取隨機(jī)值。有了隨機(jī)種子之后,每次調(diào)用rand函數(shù)會(huì)生成一個(gè)范圍在0到MAX_RAND的隨機(jī)值。MAX_RAND這是個(gè)宏,在不同的IDE里面有不同的定義,在我的VS2012里面,他等于0x7fff。

      意思是rand()函數(shù)每次生成的隨機(jī)數(shù)范圍在0到0x7fff之間。

      看你的代碼應(yīng)該是要叫人猜計(jì)算機(jī)生成的隨機(jī)數(shù),如果這個(gè)范圍過大,就沒什么意思了,我就假設(shè)你需要的隨機(jī)數(shù)是0到9之間的吧。那么你生成隨機(jī)數(shù)的代碼就應(yīng)該是:

      rand()%10;

      我不是很清楚你的代碼到底要表達(dá)什么,我自己隨便寫了一份參考代碼:

      #includestdio.h

      #includetime.h

      #includestdlib.h

      int

      ReadInt()

      {

      int

      MyRand;

      printf("please

      guess

      a

      number,

      range(0~9):");

      scanf("%d",MyRand);

      return

      MyRand;

      }

      int

      main()

      {

      int

      MyRand;

      srand(time(NULL));

      while(true)

      {

      int

      x=rand()%10;

      MyRand=ReadInt();

      if(MyRand==x)

      {

      printf("you

      win!\n");

      break;

      }

      else

      {

      printf("you

      guess

      wrong!

      you

      guess:%d

      but

      the

      answer

      is:%d

      now\nplease

      try

      again\n",MyRand,x);

      }

      }

      return

      0;

      }

      C語(yǔ)言 隨機(jī)函數(shù)

      首先一樓代碼是可以的,只是num

      =

      rand()%10的10后漏了個(gè)0;

      詳細(xì)回答你的疑惑:

      1、你要用的隨機(jī)函數(shù)rand是包含在庫(kù)文件stdib.h中,如果不引用#include當(dāng)然出錯(cuò)!:

      error

      C2065:

      'rand'

      :

      undeclared

      identifier

      2、rand是個(gè)偽隨機(jī)函數(shù),如果不用srand每一次運(yùn)行程序產(chǎn)生的隨機(jī)數(shù)一樣的,

      因此使用一個(gè)時(shí)間種子函數(shù)srand,它的參數(shù)是電腦的系統(tǒng)時(shí)間,該函數(shù)包含在庫(kù)文件time.h中,這樣由于每次運(yùn)行程序的時(shí)間不同,種子不同,生成的隨機(jī)數(shù)也不同,更接近真正的隨機(jī)數(shù)。

      希望能幫到你!

      c語(yǔ)言的隨機(jī)函數(shù)怎樣用?、

      #include stdlib.h

      #include time.h

      int main( )

      {

      int a[100]; /* 存放隨機(jī)數(shù)的數(shù)組 */

      time_t t1; /* 用于存放時(shí)間 */

      time(t1); /* 取得當(dāng)前系統(tǒng)時(shí)間 */

      srand(t1); /* 設(shè)置隨機(jī)數(shù)種子 */

      for (i = 0; i 100; i ++) /* 循環(huán)生成10個(gè)隨機(jī)數(shù),放到數(shù)組a中 */

      a[i] = 10 + rand( ) % 90;

      /* 數(shù)值范圍在10到99間,需要不同范圍的數(shù)據(jù)請(qǐng)自行更改 */

      ...

      }

      關(guān)于C語(yǔ)言隨機(jī)函數(shù)

      srand(

      time(0)

      );

      放在循環(huán)外每次產(chǎn)生隨機(jī)數(shù)的種子也是一樣的啊,為什么產(chǎn)生的隨機(jī)數(shù)就不一樣了?

      因?yàn)殡S機(jī)函數(shù)只需要一個(gè)種子就能產(chǎn)生一系列的隨機(jī)數(shù),并不是每個(gè)隨機(jī)數(shù)都需要一個(gè)種子。

      你把

      srand(time(0))

      放到循環(huán)前面就可以了。

      原因:

      time(0)返回的是系統(tǒng)的時(shí)間(從1970.1.1午夜算起),單位:秒,而那個(gè)循環(huán)運(yùn)行起來(lái)耗時(shí)連0.000001秒都不到!

      也就是說,srand(time(0))

      連著4次的種子是一樣的,種子一樣,生產(chǎn)的隨機(jī)數(shù)當(dāng)然是一樣了。

      如果你在把srand()放循環(huán)里面,在中間加個(gè)sleep函數(shù),消耗一點(diǎn)時(shí)間(間隔大于1秒),那么生成的rand

      就不一樣了.但是這樣做很不好,連著兩次用srand生成的種子,間隔一樣,生產(chǎn)的隨機(jī)數(shù)間隔有會(huì)有規(guī)律性。

      另:因?yàn)閮纱芜\(yùn)行同一程序的時(shí)間肯定是不一樣的,所以把srand放在循環(huán)前面可以得不同的種子,這樣才能得到你想要的。

      C語(yǔ)言隨機(jī)函數(shù)怎么弄

      C++的隨機(jī)函數(shù)

      C++/c語(yǔ)言里,是沒有辦法得到一個(gè)真正的隨機(jī)數(shù)序列的.想要等到一個(gè)真正的隨機(jī)數(shù)序列,必須使用特定的隨機(jī)數(shù)硬件發(fā)生器.也就是說,軟件是沒有辦法產(chǎn)生真正的隨機(jī)數(shù).因?yàn)檐浖仨毎凑找欢ǖ倪壿媮?lái)編寫.既然是按照特定的邏輯(也就是說算法)來(lái)編寫 ,那么產(chǎn)生的運(yùn)算結(jié)果就是一定的.這一點(diǎn),就是軟件天生的特性.想想看,如果一個(gè)軟件,同樣的代碼喝條件下,每次運(yùn)行的結(jié)果不一樣,那還有誰(shuí)會(huì)用?

      所以,在C++/C語(yǔ)言中,就有了"偽隨機(jī)數(shù)"的概念.意思也就是說,通過一個(gè)特定的算法,產(chǎn)生一個(gè)假的隨機(jī)數(shù)序列.那么,程序員又希望這個(gè)隨機(jī)數(shù)序列跟接近真正的隨機(jī)數(shù)序列,也就是希望得到的序列的不一樣,所以有了一個(gè)"播種"的概念.

      srand(unsgined int seed);

      這個(gè)函數(shù)就是用來(lái)"播種"的.通過一個(gè)"種子"(SEED),來(lái)控制隨機(jī)數(shù)的序列不一樣.只要種子不一樣,那么通過rand()得到的隨機(jī)數(shù)序列就不一樣.反過來(lái)說,如果種子一樣,那么通過srand()得到的隨機(jī)數(shù)就是一樣的.

      srand(0);

      for( int i = 0; i 10; i++)

      {

      coutrand()' ';

      }

      你試著將這個(gè)程序執(zhí)行兩次,你會(huì)發(fā)現(xiàn)兩次的結(jié)果一樣。那是因?yàn)椋坏胺N子”確定了,那么這個(gè)隨機(jī)數(shù)序列就確定了。軟件天生的“行為可重復(fù)性”決定了這一點(diǎn)。

      所以,一般在播種的時(shí)候,喜歡用一個(gè)隨機(jī)的種子.在絕大多數(shù)的情況下,會(huì)使用當(dāng)前的系統(tǒng)時(shí)間.這個(gè)數(shù)字在每次程序運(yùn)行的時(shí)候都不一樣.除非你手動(dòng)的改系統(tǒng)時(shí)間.

      編程時(shí)有時(shí)需要隨機(jī)輸入一些數(shù),這是調(diào)用隨機(jī)函數(shù)可以完成此相命令.

      # include “stdio.h”

      # include “stdlib.h”

      # include “time.h” /*需引用的頭文件*/

      srand((unsigned)time(NULL)); /*隨機(jī)種子*/

      n=rand()%(Y-X+1)+X; /*n為X~Y之間的隨機(jī)數(shù)*/

      進(jìn)一步解釋

      srand()設(shè)置隨機(jī)數(shù)種子,rand()得到隨機(jī)數(shù)

      random()的函數(shù)原型為int random(int num)

      它的作用是Returns an integer between 0 and (num-1)

      而randomize的函數(shù)原型為void randomize(void)

      它的作用是Initializes the random number generator with a random value.

      它們的區(qū)別是前者限定隨機(jī)數(shù)的產(chǎn)生范圍,而后者這完全是隨機(jī)的,另外使用這兩個(gè)函數(shù)時(shí)

      應(yīng)含入

      #include stdlib.h

      #include time.h

      頭文件。

      一個(gè)例子:

      用法如下:

      #include stdlib.h

      #include stdio.h

      #include time.h

      void main( void )

      {

      int i,k;

      srand( (unsigned)time( NULL ) ); //用系統(tǒng)時(shí)間當(dāng)種子,對(duì)隨機(jī)函數(shù)進(jìn)行初始化

      for( i = 0; i 10;i++ )

      {

      k=rand()%100; //產(chǎn)生各個(gè)隨機(jī)數(shù)

      printf( " k=%d\n", k );

      }

      }

      再抄個(gè)~

      在VC中設(shè)計(jì)到隨機(jī)數(shù)有兩個(gè)函數(shù)

      srand() and rand()

      srand() 的作用是是一個(gè)種子,提供每次獲得隨機(jī)數(shù)的基數(shù)而已,rand()根據(jù)種子而產(chǎn)生隨機(jī)數(shù)

      注意

      1:srand() 里的值必須是動(dòng)態(tài)變化的,否則得到的隨機(jī)數(shù)就是一個(gè)固定數(shù)

      2:其實(shí)可以不用寫srand() ,只用rand()就可以了,省事,簡(jiǎn)單,例子如下

      如果我們想得到一個(gè) 0-60的隨機(jī)數(shù)那么可以寫成

      int i;

      i=rand()%60;

      就可以了。

      當(dāng)然最好有個(gè)統(tǒng)一的標(biāo)注如下:

      int i;

      srand((unsigned)time( NULL ));

      i=rand()%60;

      這樣就OK了

      例題隨機(jī)取數(shù),取1到99之間

      1、#include iostream.h

      #include stdlib.h

      #include time.h

      int main()

      {

      int n;//n為隨機(jī)數(shù)

      srand(time(NULL));

      n=1+rand()%99;

      coutn;

      return 0;

      }

      2、#includeiostream.h

      #includestdlib.h

      #includetime.h

      void main()

      {

      int a;

      srand((unsigned) time(NULL));

      a=rand()%99+1;

      couta;

      }

      3、#include iostream.h

      #include stdlib.h

      #include time.h

      void main()

      {

      int j;

      srand((unsigned)time(NULL));

      loop:

      j=rand()%100;

      if(j==0)

      {

      cout"error"endl;

      goto loop;

      }

      else coutjendl;

      }

      4、如果象樓上的你的那種做法做下去

      那應(yīng)該是100%而不是98%

      你一定是少了

      srand(...........);

      其實(shí)這個(gè)程序也不錯(cuò)

      #include iostream

      #include cstdlib

      using namespace std;

      int main()

      {

      int counter;

      for(counter=0;counter10;counter++)

      {

      srand(counter+1);

      cout"Random number"counter+1":"rand()endl;

      }

      system("pause");

      return 0;

      }

      5、#include iostream.h

      #include stdlib.h

      int main()

      {

      int shu =100;

      int n;//n為隨機(jī)數(shù)

      srand(shu);

      n=rand() % shu;

      coutn;

      return 0;

      }

      不拿時(shí)間作隨機(jī)數(shù),可以設(shè)一個(gè)種子數(shù)不清100這樣就產(chǎn)生0~99間的隨機(jī)數(shù)。

      不過我沒有測(cè)試從復(fù)率,誰(shuí)測(cè)了告訴我一下。


      新聞標(biāo)題:c語(yǔ)言設(shè)置隨機(jī)時(shí)間函數(shù),c語(yǔ)言如何設(shè)置隨機(jī)數(shù)
      網(wǎng)頁(yè)URL:http://www.ef60e0e.cn/article/hdepgj.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        马边| 韶山市| 蒲江县| 紫阳县| 蒙自县| 望城县| 云梦县| 剑阁县| 绩溪县| 普兰县| 汕头市| 分宜县| 义马市| 崇阳县| 冷水江市| 天祝| 清镇市| 西充县| 正阳县| 鹿邑县| 黎川县| 万州区| 镇赉县| 宜春市| 昆明市| 鲁甸县| 海宁市| 黄梅县| 繁昌县| 宁国市| 灵寿县| 衢州市| 榆中县| 志丹县| 芦山县| 舞钢市| 美姑县| 雷波县| 板桥市| 汉源县| 延川县|