• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      C語(yǔ)言中隨機(jī)函數(shù)的應(yīng)用

      2016-05-11 06:50:02馬紅旭
      中國(guó)新通信 2016年7期
      關(guān)鍵詞:程序

      馬紅旭

      【摘要】 文章討論的問(wèn)題是利用c語(yǔ)言中的隨機(jī)整數(shù),編寫(xiě)幾個(gè)有用的程序。

      【關(guān)鍵詞】 C語(yǔ)言 隨機(jī)整數(shù) 程序

      C語(yǔ)言中隨機(jī)函數(shù)RAND( )的功能是產(chǎn)生0—32767之間的隨機(jī)整數(shù)。根據(jù)隨機(jī)函數(shù)取值范圍,我們可以變換出幾個(gè)有用的數(shù)學(xué)公式,以它們做為數(shù)學(xué)模型,就能夠編寫(xiě)幾個(gè)有用的程序,本文將研究利用c語(yǔ)言中的隨機(jī)整數(shù),編寫(xiě)幾個(gè)有用程序的方法和過(guò)程。

      一、驗(yàn)證隨機(jī)函數(shù)取值范圍

      有資料顯示C語(yǔ)言中隨機(jī)函數(shù)RAND( )的取值范圍是-90—32767之間的隨機(jī)整數(shù),和我們上面提到的0—32767之間的隨機(jī)整數(shù)有一定差距,到底哪個(gè)正確,我們不妨親自編寫(xiě)程序驗(yàn)證。思路是:產(chǎn)生n個(gè)隨機(jī)整數(shù), 每當(dāng)這個(gè)隨機(jī)整數(shù)值小于0時(shí),我們把計(jì)算器次數(shù)x增加一次,程序最后打印x的值。我們可以根據(jù)打印出的x值,做出相應(yīng)的判斷,如果x值大于0次,說(shuō)明rand( )函數(shù)有取[-0,-90]之間負(fù)整數(shù)的可能。據(jù)此我們編寫(xiě)c語(yǔ)言程序,代碼如下:

      #include "stdio.h"

      #include "stdlib.h"

      #include "time.h"

      int main()

      { long int n=0,x=0;

      srand( (unsigned)time( NULL ) );

      for(n=1;n<=100000;n++)

      if (rand()<0)x=x+1;

      printf("%d", x ); }

      經(jīng)多次運(yùn)行,甚至n最大值取到2G驗(yàn)證,x值始終為零,說(shuō)明rand()函數(shù)不可能取負(fù)值,因此驗(yàn)證得到結(jié)論:隨機(jī)函數(shù)RAND( )的取值范圍是0—32767之間的隨機(jī)整數(shù)。

      二、利用隨機(jī)函數(shù)產(chǎn)生指定位數(shù)的隨機(jī)整數(shù)

      利用RAND( )函數(shù)產(chǎn)生一位隨機(jī)整數(shù) (0—9),公式為rand( )%10,產(chǎn)生兩位隨機(jī)整數(shù) (10—99)

      公式為rand( )%90+10,產(chǎn)生三位隨機(jī)整數(shù) (100—999)公式為rand( )%900+100,以此類(lèi)推產(chǎn)生n位隨機(jī)整數(shù)公式為 rand()%(int)( pow(10,n)-pow(10,n-1) )+(int)pow(10,n-1) ),據(jù)此我們可以編程序?qū)崿F(xiàn)產(chǎn)生n個(gè)n位的隨機(jī)整數(shù)(這里只產(chǎn)生10個(gè)數(shù))。代碼如下:

      #include "stdio.h"

      #include "stdlib.h"

      #include "math.h"

      #include "time.h"

      int main()

      { long int i,n=0,x=0;

      printf(“請(qǐng)輸入產(chǎn)生隨機(jī)整數(shù)的位數(shù)”);

      scanf("%d",&n;);

      srand( (unsigned)time( NULL ) );

      for(i=1;i<=10;i++)

      if (n==1)printf("%d,",rand()%10);

      else printf("%d,",

      rand()%(int)( pow(10,n)-pow(10,n-1) )

      +(int)pow(10,n-1) ); }

      三、利用隨機(jī)函數(shù)產(chǎn)生指定范圍的隨機(jī)整數(shù)

      利用RAND( )函數(shù)產(chǎn)生指定[A,B]范圍的隨機(jī)整數(shù),公式為rand( )%(B-A+1)+A。依此公式我們編寫(xiě)了一個(gè)程序,功能是:出幾道加法題給小學(xué)生做,如果學(xué)生寫(xiě)對(duì)答案,顯示‘ok字樣,可以進(jìn)行下一道題;如果沒(méi)做對(duì),返回,重做此題。程序代碼如下:

      #include “stdio.h”

      #include “stdlib.h”

      #include “math.h”

      #include “time.h”

      int main()

      { int i,n=0;int a,b,c;

      printf(“請(qǐng)問(wèn)要做幾位數(shù)加法?”);

      scanf("%d",&n;);

      srand( (unsigned)time( NULL ) );

      for(i=1;i<=10;i++)

      {a=rand()%(int)( pow(10,n)-pow(10,n-1) ) +(int)pow(10,n-1) ;

      b=rand()%(int)( pow(10,n)-pow(10,n-1) ) + (int)pow(10,n-1) ;

      a1:printf("%d+%d=?",a,b);

      scanf("%d",&c;);

      if (a+b==c)printf("ok\n");

      else goto a1;} }

      當(dāng)然,程序還可有很多變化,比如學(xué)生可以預(yù)先選擇做幾道題,做完每道題退不退出等,此處不贅述。

      四、綜述

      利用上述方法,我們研究了C語(yǔ)言隨機(jī)整數(shù) rand( )幾種用法,運(yùn)算結(jié)果正確問(wèn)題得到解決,該方法省時(shí)省力,安全高效,對(duì)c語(yǔ)言的應(yīng)用與推廣意義重大。

      參 考 文 獻(xiàn)

      [1] 譚浩強(qiáng)等編著 .C程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2005(2007重?。?/p>

      [2] 徐金梧等編著. TURBO C使用大全 [M]. 北京:北京科海培訓(xùn)中心,1989.

      [3] Charles Wright等著.鄧勁生等譯 Visual c++程序員實(shí)用大全[M]. 北京:中國(guó)水利水電出版社,1989.

      猜你喜歡
      程序
      給Windows添加程序快速切換欄
      試論我國(guó)未決羈押程序的立法完善
      失能的信仰——走向衰亡的民事訴訟程序
      “程序猿”的生活什么樣
      英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
      基于VMM的程序行為異常檢測(cè)
      偵查實(shí)驗(yàn)批準(zhǔn)程序初探
      我國(guó)刑事速裁程序的構(gòu)建
      淺析德國(guó)刑事訴訟程序之調(diào)查程序
      人間(2015年23期)2016-01-04 12:47:46
      創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
      长兴县| 涟水县| 泽州县| 济宁市| 南木林县| 兴义市| 南郑县| 兰州市| 玉龙| 塔河县| 衡南县| 颍上县| 庆元县| 嘉善县| 谢通门县| 长岛县| 绩溪县| 金门县| 塔河县| 武功县| 平远县| 徐州市| 冀州市| 通江县| 团风县| 濮阳县| 桦川县| 芷江| 乐山市| 沭阳县| 嘉义县| 禹城市| 吐鲁番市| 堆龙德庆县| 桦南县| 韶山市| 卢龙县| 合江县| 丹寨县| 朝阳市| 德庆县|