c 隨機數如何取一定範圍內值 詳細

時間 2021-08-30 11:05:14

1樓:匿名使用者

先取一個隨機數的種子。srand();為了避免重複,一般取當前系統時間為種子。srand(usigned(time(0)))。

然後用rand函式。1+rand()% 101;就是1~100之間的隨機整數。

2樓:匿名使用者

假設範圍是 [a, b];

int range = b - a + 1;

int val = rand() % range + a; // rand() % range 就是 rand() 生成的數對range取餘,數值就會在 [0, range) 之間, 加上 a,就是 [a , a+ range) -> [a, b+1) -> [a, b]

3樓:匿名使用者

#include#include//包含處理生成隨機數的函式及其他 //rand():在0~32767之間,rand()上限儲存在常量rand_max中,在cstdlib中定義的 //若想知道rand()能夠生成的最大隨機數,可將rand_max傳送到cout#include//包含time()根據當前時間返回一個數字using namespace std;int main()

4樓:紫陌流蘇

隨機數的範圍是任意的,如果要固定範圍,固定一下就可以了

5樓:匿名使用者

#include #include #include srand(time(0));int random = 1+rand()%100;

怎樣獲得在一定範圍內的隨機數?

6樓:千鋒教育

直接的方法是

rand() % n /* 不好 */

試圖返回從 0 到 n ? 1 的數字。但這個方法不好, 因為許多隨機數發生器版的低位位元並不隨機。權一個較好的方法是:

(int)((double)rand() / ((double)rand_max + 1) * n)

如果不希望使用浮點, 另一個方法是:

rand() / (rand_max / n + 1)

兩種方法都需要知道 rand max, 而且假設 n 要遠遠小於 rand max。rand max 在 ansi 裡 #define 在 。

順便提一下, rand max是個常數, 它告訴 c 庫函式 rand() 的固定範圍。不可以設 rand max 為其它的值, 也沒有辦法要求 rand() 返回其它範圍的值。

如果用的隨機數發生器返回的是 0到1的浮點值, 要取得範圍在 0 到 n ? 1內的整數, 只要將隨機數乘以 n 就可以了。

在c++怎麼中實現在指定範圍內產生一個隨機數

7樓:風若遠去何人留

用rand加模除

比如要生成[a,b]範圍內的隨機數

用rand()%(b-a+1)+a

c語言中取隨機數的函式,C語言中取隨機數的函式

韌勁 1.基本函式 在c語言中取隨機數所需要的函式是 int rand void void srand unsigned int n rand 函式和srand 函式被宣告在標頭檔案stdlib.h中,所以要使用這兩個函式必須包含該標頭檔案 include 2.使用方法 rand 函式返回0到ran...

如何用c 產生隨機數,如何用C 產生隨機數?

在煙幹辰 rand 這個函式就是產生隨機數的,想要一個範圍的隨機數,可以用取餘數的方式 如取0 99之間的數,可以rand 100 需要使用rand 和srand 函式 rand 為隨機數函式,產生 0,int型最大值 之間的整數數 srand seed 為初始化隨機數種子函式 具體例子如下 inc...

C語言中產生隨機數,C語言怎樣產生一定範圍的隨機數?

巧金蘭嵇嫣 樓上這樣得出的隨機值不準確,不信你執行幾次試試,都是同一個數。正確應該這樣。首先加標頭檔案 include include 然後在主函式裡面寫 inti srand time 0 i rand 100 1 printf d i 隨機數主要有兩個函式 一個種子產生函式 void srand...