国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - C/C++產生指定范圍和不定范圍隨機數的實例代碼

C/C++產生指定范圍和不定范圍隨機數的實例代碼

2021-01-09 15:12C++教程網 C/C++

C/C++產生隨機數用到兩個函數rand() 和 srand(),這里介紹不指定范圍產生隨機數和指定范圍產生隨機數的方法代碼大家參考使用

一. 不指定范圍產生隨機數
用到函數rand(),函數原型為int ra
nd(),無參數。此時會產生一個介于0~RAND_MAX間的整數。RAND_MAX的大小可以查看,在include文件夾(linux在usr目錄、windows在安裝目錄)的stdlib.h可以看到,linux下其值為2147483647(),其值與具體系統有關。
參考代碼:

 

復制代碼 代碼如下:


#include<stdio.h>
#include<stdlib.h>

 

int main()
{
        int i;
        for(i=0; i<10; i++)  //隨機產生10個數。
        {
            printf("%d\n", rand());
        }
        return 0;
}

 

二. 指定范圍產生隨機數,產生0到某個數的隨機數

沒有現成的函數,但是可以通過取余得到

 

復制代碼 代碼如下:

#include<stdio.h>
#include<stdlib.h>
#define Random(x) (rand() % x) //通過取余取得指定范圍的隨機數
int main()
{
        int i;
        int dis;               //產生[0, dis)之間的隨機數,注意不包括dis
        for(i=0; i<10; i++)
        {   
            printf("%d\n", Random(dis));
        }
        return 0;
}

 

說明下:假設dis取5
C/C++產生指定范圍和不定范圍隨機數的實例代碼

注意一個問題:以上兩個程序每次執行產生的結果是相同的,既是個偽隨機數。rand()產生隨機數與具體的種子有關,當不特意用srand()獲取種子時,種子的默認值為1,因此需要用srand()函數產生不同的種子,srand函數原型:void srand(unsigned seed);為了產生不同的種子值,通常用時間作為參數值。例如對于一,修改程序如下:

 

復制代碼 代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
        int i;
        srand((int)time(NULL));     //每次執行種子不同,生成不同的隨機數
        for(i=0; i<10; i++)
        {
          printf("%d\n", rand());  //因為執行太快,不到一秒鐘,10個隨機數是相通的,但是每次執行是不同的
        }
        return 0;
}

 

三. 指定范圍產生隨機數

要求:指定范圍(m,n),m、n關系不定,隨機數包括m和n
想方設法,把范圍(m,n)改變到(0,X),到最后再轉移回去。三種情況

 

復制代碼 代碼如下:


1:m=n此時不該叫隨機數,這里返回m
2:m>n:
        標記pos=n,距離差pos=m-n+1
     返回 rand() % dis + pos

 

3:n>m:
        標記pos=m,距離差=n-m+1
     返回rand()%dis + pos

 

參考代碼:

 

復制代碼 代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int Random(int m, int n)
{
        int pos, dis;
        if(m == n)
        {
            return m;
        }
        else if(m > n)
        {
            pos = n;
            dis = m - n + 1;
            return rand() % dis + pos;
        }
        else
        {
            pos = m;
            dis = n - m + 1;
            return rand() % dis + pos;
        }
}
int main()
{
        int i, m, n;
        srand((int)time(NULL));
        m = -3;
        n = -7;
        for(i=0; i<10; i++)
        {
            printf("%d\n", Random(m, n));
        }
        return 0;
}

 

升華
srand((unsigned)time(null));
(a,b) (rand()%(b-a+1))+a-1
[a,b) (rand()%(b-a))+a
(a,b] (rand()%(b-a))+a+1
[a,b] (rand()%(b-a+1))+a

延伸 · 閱讀

精彩推薦
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线国产视频观看 | 欧美日韩成人 | 一区二区三区在线 | 欧美日韩免费 | 在线播放国产精品 | 黄色一级免费大片 | 一区二区三区精品 | 久久久女女女女999久久 | 欧美九九九 | 亚洲欧美在线精品 | 午夜国产| 欧美啪啪一区二区 | 欧美一区二区视频免费观看 | 在线成人小视频 | 日韩黄网 | 欧美精品久久久 | 538在线精品| 久久久久久久久久久久一区二区 | www.久| 天天碰天天操 | 天堂资源| av毛片免费 | 欧美精品在线一区二区 | 一级片免费在线观看视频 | 2012中文版免费观看 | 最近免费中文字幕在线视频2 | 亚洲欧美一区二区三区在线 | 精品久久久久国产 | 国产精品一二 | 国产精品久久久久国产a级 最新国产视频 | 亚洲精品乱码久久久久久按摩观 | 午夜免费av | 一本久道视频一本久道 | 色婷婷精品国产一区二区三区 | 成人免费在线观看视频 | 日韩欧美一级片 | 欧美日韩免费 | 欧美成人精品一区二区三区 | 成年免费视频 | 天天操网| 黄网站在线播放 |