使用c++11生成隨機數
c++的rand()函式只能生成小於3e4的隨機數,很多時候不夠用
使用rand() * rand()實際上也不符合分佈
c++11提供了幾種較好的方法
***,測了下也是1e9
#include <iostream>
#include <random>
using namespace std;
int main()
{
random_device rd;
int x = rd();
cout << x << endl;
return 0;
}
mt19937,傳說中的梅森旋轉演算法,測了下最大1e9
#include <iostream> #include <random> using namespace std; int main() { random_device rd; mt19937 mt(rd()); int x = rd(); cout << x << endl; return 0; }
相關推薦
使用c++11生成隨機數
c++的rand()函式只能生成小於3e4的隨機數,很多時候不夠用 使用rand() * rand()實際上也不符合分佈 c++11提供了幾種較好的方法 ***,測了下也是1e9 #include <iostream> #include <rando
(c++11)隨機數------c++程序設計原理與實踐(進階篇)
ber linear 而在 希望 double 元素 light eal 區間 隨機數既是一個實用工具,也是一個數學問題,它高度復雜,這與它在現實世界中的重要性是相匹配的。在此我們只討論隨機數哦最基本的內容,這些內容可用於簡單的測試和仿真。在<random>
c++如何生成隨機數
使用rand()函式 標頭檔案<stdlib.h> (1) 如果你只要產生隨機數而不需要設定範圍的話,你只要用rand()就可以了:rand()會返回一隨機數值, 範圍在0至RAND_MAX 間。RAND_MAX定義在stdlib.h, 其值為2147483647。 例如: #includ
C語言生成隨機數
三個函式: rand():返回 0-RAND_MAX 之間的一個隨機整數。 srand():和rand()函式配合使用,根據seed生成一個隨機起始點,然後rand()函式根據這個起始點產生隨機數。種子相同,生成的隨機數序列就相同。 time():生成一個數作為see
c++11產生隨機數的方法
1.產生10-20之間的隨機數 std::default_random_engine generator(time(NULL)); std::uniform_int_distribution<int> distribution(10
C# 中生成隨機數
guid ole 對象產生 brush div 代碼 就是 函數 next 生成1-100之間的隨機數: new Random().Next(1, 100) 但是輸出的結果是一樣的,因為Random調用無參的構造函數其實調用的是 有參的構造函數,傳遞的 默認值: Envi
c++生成隨機數
b-s ron 需要 end nbsp rand int stream 默認 生成一個隨機數需要rand()函數來獲得隨機整數,使用rand()函數需要添加頭文件cstdlib。rand()生成的最大數由平臺決定的常輸,在vc++中最大數為32767。 rand()函數生
C# 生成隨機數
滿足 防止 ati 重復 char 變量 隨機種子 lba c# private static char[] constant = { ‘0‘,‘1‘,‘2‘,‘3‘,‘4‘,‘5‘,‘6‘,‘7‘,‘8‘,‘9‘, ‘a
C# Random循環生成隨機數重復問題解決方案
解決方案 div random height pre -h () 解決 計算 C# Random循環生成隨機數重復問題解決方案1.當我們通過Random生成隨機數時,習慣的寫法如下: int a=new Random().Next(0,100); 然後生成一個數據數沒有任何
C++生成隨機數的方法總結
oca cnblogs nbsp seconds wmi iostream 代碼 cin std 網上有很多使用C++生成隨機數的文章,其原理不再贅述,這裏貼出windows系統上生成各種隨機數的代碼,方便查用。 1 #include <iostream>
C# 生成隨機數的代碼
圖片 rec solid 添加 文檔 normal crypto () margin /// 構造隨機數 種子 static int GetRandomSeed() { byte[] bytes = new byte[4]; System.Secur
C++11新特性(75)-隨機數庫(Random Number Library)
從前的隨機數 C++11之前,無論是C,還是C++都使用相同方式的來生成隨機數,程式碼大致如下: 由於rand()產生的是偽隨機數,所以需要為rand函式提供種子。種子不同產生的隨機數序列也不同。通常的做法是呼叫srand(time(0)),由於time返回的是系統時間,每秒都會不
c#生成隨機數
c#生成隨機數 最近寫東西需要在題庫中隨機選20道題, 這種需求當然要用到隨機數,所以就在網上覆制了一段程式碼下來,程式碼很精煉,用的也不錯 附上鍊接表示感謝 http://www.cnblogs.com/jxsoft/archive/2011/
C++生成隨機數:高斯/正態分佈(gaussian/normal distribution)
常用的成熟的生成高斯分佈隨機數序列的方法由Marsaglia和Bray在1964年提出,C++版本如下: #include <stdlib.h> #include <math.h> double gaussrand() { static double V1, V2, S
C++11--隨機數引擎和隨機數分佈<random>
/* 隨機數引擎: * 有狀態的隨機數發生器,生成在預定義的最大小值之間的隨機數 * 不是真正的隨機數--偽隨機 */ int main () { std::default_random_engine eng; cout << "Min: " << en
【C++】c++ 11中的隨機數 ——random
c++ 中的隨機數 在 C++ 程式中,在新標準出現之前,C 和 C++ 都依賴一個簡單的 C 庫函式 rand 來生成隨機數,但是,這個函式生成的是均勻分佈的偽隨機數,每個隨機數的範圍在 0 和一個系統相關的最大值(至少為 32767)之間。 ra
C/C++怎樣生成確定範圍的隨機數(如[-1,1])
1、生成[-1,1]的隨機數 float GetRand() { return 2 .0 * rand() / RAND_MAX - 1.0; } 注意那個2.0不能寫成2了,那樣的話,你就真…… 2、生成low到up(low < up)之間的隨機
C++11中,獲取隨機數的新方法default_random_engine
C++11中,提供了一種新的獲取隨機數的方法。 以前獲取偽隨機數都是用的rand,想要獲取兩個數之間的偽隨機數,方法如下: int min,max; //定義上下邊界 int range=max-min; //獲取中間的範圍 int randNum = rand() %
C#簡單的生成隨機數
//拿一個8位數的隨機數 string randomNumber=GetCode(8); public string GetCode(int length) { char[] chars = { '0', '1', '2', '3', '4', '5',
C語言 rand函式生成隨機數
在實際的專案中,有時候需要生成一個隨機數,在C語言中隨機數的生成可以通過使用rand函式來實現。 rand函式包含在標頭檔案stdlib.h裡,因此使用rand函式需要宣告包含stdlib.h。 #include<stdlib.h> #inc