srand()和rand()生成隨機數
#include <iostream>
#include <time.h>
using namespace std;
void main()
{
//srand(1);
srand(time(0));
cout << rand()<<endl;
system("pause");
}
執行程式的結果如下:(執行3次)
可以看到,每次執行程式都會得到不同的結果。
但是在使用srand(1)初始化種子時,每次執行程式得到的隨機數結果都一樣。如下:(執行兩次)
這裡對程式中用到的產生隨機數的函式進行解釋。
1,srand()函式:隨機數發生器的初始化函式,需要提供一個種子,這個種子會對應一個隨機數。如果使用相同的種子,rand() 函式會出現一樣的隨機數。預設種子數是1,即srand(1)。
2, rand()函式:偽隨機數發生器,需要先呼叫srand初始化,一般用當前日曆時間初始化隨機數種子,這樣每行程式碼都可以產生不同的隨機數。
3,隨機數產生的原理:隨機數中的變數種子rand初始會賦值給holdrand,然後holdrand和一個公式計算出新的隨機數並賦值給holdrand再返回,迴圈產生隨機數,每次得到的結果只與上次隨機數的值有關,如果想要每次生成的新隨機數和上次隨機數沒有關聯,可以通過每次利用(srand((unsigned)time(0)))改變種子進而初始化holdrand得到隨機數。
關於srand(time(0)))和rand()的解釋
相關推薦
srand()和rand()生成隨機數
#include <iostream> #include <time.h> using namespace std; void main() { //srand(1);
VS2010中srand和rand產生隨機數的用法
原文地址:https://blog.csdn.net/na_beginning/article/details/39932535 1.VC和VS2010中srand()和rand()函式的區別 在VC中rand(
C語言中的隨機數 srand ( ) 和 rand ( )
在C語言中,生成一個隨機數,一般利用兩個函式,即void srand ( unsigned int seed ) 和 int rand ( void )。 srand() 函式用於生成一個隨機數種子,種子的值等於引數seed,這個引數由我們指定一個
C語言/C++中的srand()和rand()函式
C語言C++中的srand()和rand()函式 標頭檔案: rand和srand包含在標頭檔案中的<stdlib.h>(c++中使用)中,rand和srand用於產生隨機數。 如: #include<stdio.h> #include&
採用rand生成隨機數方法
我們知道rand()函式可以用來產生隨機數,但是這不是真正意義上的隨機數,是一個偽隨機數,是根據一個數(我們可以稱它為種子)為基準以某個遞推公式推算出來的一系列數,當這系列數很大的時候,就符合正態公佈,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這個種
srand() 和 rand()
RAND_MAX 是 VC 中 stdlib.h 中巨集定義的一個字元常量: #define RAND_MAX 0x7FFF 其值為 32767 通常在產生隨機小數時可以使用 RAND_MAX 。 我們要選取我們範圍內的 隨機數時可以使用一下方法。 1 、假設取值範圍是 0
matlab生成隨機數的rand、randi和randn三種形式
matlab中關於隨機數的產生有3種庫函式,下面我們來看看它們的形式: 1、rand(…) 它是生成0~1之間(開環,不包含0和1兩個數)均勻分佈的偽隨機數,也就是無窮次試驗其中每個數產生的概率是一樣的。 它的函式格式如下: <span sty
ruby 生成隨機數 和 隨機字串
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
生成隨機數和字母(任意長度)
Java隨機數生成器:Random,ThreadLocalRandom,SecureRandom @Test public void getItemID(int n) {//n需要的長度 String val = ""; Random random = new Ra
Python 用生成隨機數和md5加密----hashlib模組
hashlib主要提供字元加密功能,將md5和sha模組整合到了一起,支援md5,sha1, sha224, sha256, sha384, sha512等演算法. 一、固定字串加密 import hashlib md5_str = hashlib.md5() md5_
c# 生成指定範圍的數字和字母組合隨機數
private static char[] constant = { '0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o'
通過若干次 rand() 使得隨機數的和超過 RAND_MAX 的隨機次數的期望
最近看到一個程式碼,感覺十分有趣, M a r
C語言 rand函式生成隨機數
在實際的專案中,有時候需要生成一個隨機數,在C語言中隨機數的生成可以通過使用rand函式來實現。 rand函式包含在標頭檔案stdlib.h裡,因此使用rand函式需要宣告包含stdlib.h。 #include<stdlib.h> #inc
C語言和java中生成隨機數的原理和方法
C語言 一.函式 1:int rand(void) 該函式會產生一個[0,RAND_MAX]的偽隨機數,那什麼是偽隨機數? 相當於一個序列a1-an,第一次使用會返回a1, 第二次使用會返回a2….第n次返回an,這樣每次呼叫rand()都能產生一個不同
java利用數字和字母隨機組合生成隨機數
思路:如果區分大小寫的話,那麼大寫算是一類,小寫算是一類,數字算是一類, 那麼通過 Random rand=new Random();這行程式碼隨機生成代表每一類的的生成器。 如果隨機產生的值為0,則產生的是數字,如果隨機產生的是1,則代表要產生大寫字母, 如果隨機產生的值
tensorflow 生成隨機數 tf.random_normal 和 tf.random_uniform 和 tf.truncated_normal 和 tf.random_shuffle
____tz_zstf.random_normal從正態分佈中輸出隨機值。.random_normal(shape,mean=0.0,stddev=1.0,dtype=tf.float32,seed=None,name=None).shape:一個一維整數張量或Python陣
Linux下生成隨機數和隨機字串
1、生成長度為32的隨機字串 head -c 32 /dev/random | base64 該方式產生的隨機數效果比較好,但是,當不能產生隨機數時,它會阻塞在那裡,也就是為阻塞程式的執行 2、用/dev/urandom檔案產生 head -c 32 /
C++隨機數 (rand srand)用法,注意隨機數種子每次要更新。
計算機的隨機數都是由偽隨機數,即是由小M多項式序列生成的,其中產生每個小序列都有一個初始值,即隨機種子。(注意: 小M多項式序列的週期是65535,即每次利用一個隨機種子生成的隨機數的週期是65535,當你取得65535個隨機數後它們又重複出現了。) 我們知道rand(
c語言中關於srand((unsigned)time(NULL))和rand的區別
一直以為rand()直接生成不同的隨機數,實驗結果不對才搜了下原因,轉載分享下... 可以認為rand()在每次被呼叫的時候,它會檢視: 1) 如果使用者在此之前呼叫過srand(seed),給seed指定了一個值,那麼它會自動呼叫 srand(seed)一次來初始
java實現和電腦猜隨機數生成1到100
public class text{public static void main(String[]args){Scanner in=new Scanner(System.in);System.out.println("請猜一下電腦隨機生成的數是多少(1-100)");i