Linux 隨機數


一、rand函數

rand函數的簡單使用,rand()返回一個[0, RAND_MAX]中的隨機數 

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

int main()
{
    printf("%d\n", RAND_MAX);

    //srand(time(NULL));

    for(int i = 0; i < 5; i++)
    {
        printf("%d\n", rand());
    }

    return 0 ;
}

運行結果

 

二、srand函數

rand得到的隨機數只是一個偽隨機數,由算法得到的,且存在一個問題,當我們再一次運行時會發現和上一次得到的隨機數時一樣的

這是因為rand內部實際是通過一個種子進行一些算法得到的值,默認為1,種子相同,算法相同,所以每次得到的值相同!

於是就用到了srand函數,為rand函數設置隨機種子,傳入一個值,可以傳入時間,保證不相同!

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

int main()
{
	printf("%d\n", RAND_MAX);

	srand(time(NULL));

	for(int i = 0; i < 5; i++)
	{
		printf("%d\n", rand());
	}

	return 0 ;
}

  這樣每次運行程序時得到的值不再相同!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM