c語言隨機數

寫得我本身都看很差了:你們都比較喜歡吃快餐,只須要儘快告訴讀者怎麼用起來就好了。不想聽囉囉嗦嗦說一堆,而後例程還特別麻煩ios

so:數組

 一、基本dom

int seed = time(0);//#include <ctime>函數

srand(seed);spa

int myRandom = rand(); code

 

//就這三行就獲得了一個 隨機數,其餘的 都不屬於隨機數的範疇,舉個隨機數的例子還要看數組,這說明這個 筆記作的是在不咋好。blog

二、而後是生成指定範圍的數字:io

如何生成一個隨機數i,使得0<=i<20?function

如何生成一個隨機數i,使得 10<=i<20?class

如何生成一個隨機數i,使得 10<=i<=50?

int seed = time(0);

srand(seed);

int i1 = rand()%20;

int i2 = rand()%10+10;

int i3 = rand()%10+40;

 

三、解釋緣由

這個有點兒坑,每次結果都是同樣的,說好的隨機根本不隨機。其實 隨機數自己也是經過計算獲得的,每一次都是經過隨機數種子計算獲得的。若是隨機數種子不一樣那麼計算出來的隨機數就不一樣,而產生隨機數種子的函數一樣在 stdlib.h 裏面,函數是:srand().

【此部分代碼在function1()裏面】

咱們須要給隨機數種子每次以不一樣的值,而後就能獲得不一樣的隨機數了,可是還有一個弊端。種子怎麼才能獲得不一樣的值。那咱們知道時間每時每刻都不相同,因此若是能用時間給到隨機數種子裏面,那麼每次獲得的結果必然是不相同的。

獲得

 

這個結果就比較好了。

 

下面源代碼。

 

 

#include <iostream>
#include <stdlib.h>
#include <time.h>
/**
    rand() 來自 stdlib.h 文件 
*/
void function1(void);
void function2(void);
//int[] makeArray(int array[]);//怎麼返回int類型的數組? 
void display(int array[]); 
int main() {
    function1();
    function2();
    return 0;
}
void function2(void){
    int array[10];
    int randomseed = (int) time(NULL);//包含在time.h裏面 
    //返回當前時間,是time類型須要強制類型轉換成int類型。
    srand(randomseed);
    for(int i=0;i<10;i++){
        array[i]=rand();
    }
    display(array);
}
void function1(void){
    //咱們利用 rand() 來產生隨機數:
    int array[10];
    for(int i=0;i<10;i++){
        array[i]=rand();
    }
    display(array);
}

void display(int array[]){
    for(int i=0;i<10;i++){
        printf("array[i]=%d ",array[i]);
        if((i+1)%5==0){
            printf("\n");
        }     
    }
}
    
相關文章
相關標籤/搜索