c語言產生一個隨機數
① c語言中如何生成1個0到1的隨機數
C語言中生成1個0到1的隨機數可以執行語句:float b=rand()/(RAND_MAX+1.0);
解析:
標准C庫中函數rand()可以生成0~RAND_MAX之間的一個隨機數,其中RAND_MAX 是stdlib.h 中定義的一個整數,它與系統有關。rand()函數沒有輸入參數,直接通過表達式rand()來引用;
用函數rand取得的隨機數除以(RAND_MAX+1.0),即可確保得到的結果在0到1之間。ISO IEC 9899 2011 (C11)標准中未規定 RAND_MAX 的具體數值。但該標准規定了RAND_MAX 的值應至少為32767。編程的時候,不應該對 RAND_MAX 的具體數值做任何假設。
(1)c語言產生一個隨機數擴展閱讀:
相關說明:
1、因為rand()函數是按指定的順序來產生整數,因此每次執行上面的語句都列印相同的兩個值,所以說C語言的隨機並不是真正意義上的隨機。
2、為了使程序在每次執行時都能生成一個新序列的隨機值,我們通常通過為隨機數生成器提供一粒新的隨機種子。函數 srand()(來自stdlib.h)可以為隨機數生成器播散種子。只要種子不同rand()函數就會產生不同的隨機數序列。srand()稱為隨機數生成器的初始化器。
3、隨機種子(Random Seed)是計算機專業術語,一種以隨機數作為對象的以真隨機數(種子)為初始條件的隨機數。一般計算機的隨機數都是偽隨機數,以一個真隨機數(種子)作為初始條件,然後用一定的演算法不停迭代產生隨機數。
② C語言中怎樣生成隨機數
在VC中設計到隨機數有兩個函數
srand() and rand()
srand() 的作用是是一個種子,提供每次獲得隨機數的基數而已,rand()根據種子而產生隨機數
注意
1:srand() 里的值必須是動態變化的,否則得到的隨機數就是一個固定數
2:其實可以不用寫srand() ,只用rand()就可以了,省事,簡單,例子如下
如果我們想得到一個 0-60的隨機數那麼可以寫成
int i;
i=rand()%60;
就可以了。
當然最好有個統一的標注如下:
int i;
srand((unsigned)time( NULL ));
i=rand()%60;
這樣就OK了。
③ c語言,如何產生隨機數
1、第一步,先定義int一個數組和int一個指針變數。
④ C語言怎樣產生一定范圍的隨機數
在C語言中,rand()函數可以用來產生隨機數,但是這不是真真意義上的隨機數,是一個偽隨機數,是根據一個數,可以稱它為種子。
為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數。
C語言產生一定范圍的隨機數的源代碼如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
for(i=0; i<10; i++) //隨機產生10個數。
{
printf("%d ", rand());
}
return 0;
}
(4)c語言產生一個隨機數擴展閱讀
1、如果要隨機生成一個在一定范圍的數,你可以在宏定義中定義一個random(int number)函數,然後在main()裡面直接調用random()函數。
2、在對rand()的前三次調用中,並且此後得到的返回值仍然是在對rand()的第一批調用中所得到的其餘的返回值。因此,只有再次給srand()提供一個隨機的「種子」值,才能再次得到一個隨機數。
⑤ C語言如何生成隨機數
在VC中設計到隨機數有兩個函數
srand()
and
rand()
srand()
的作用是是一個種子,提供每次獲得隨機數的基數而已,rand()根據種子而產生隨機數
注意
1:srand()
里的值必須是動態變化的,否則得到的隨機數就是一個固定數
2:其實可以不用寫srand()
,只用rand()就可以了,省事,簡單,例子如下
如果我們想得到一個
0-60的隨機數那麼可以寫成
int
i;
i=rand()%60;
就可以了。
當然最好有個統一的標注如下:
int
i;
srand((unsigned)time(
NULL
));
i=rand()%60;
這樣就OK了。
⑥ C語言如何編程產生隨機數
1、首先打開Visual stdio 2019,依次點擊文件,新建,項目新建以一個空白的項目:
⑦ c語言如何實現隨機數字的產生
1.
C語言提供了一些庫函數來實現隨機數的產生。C語言中有三個通用的隨機數發生器,分別為
rand函數,
random函數,
randomize
函數
2.
但是rand函數產生的並不是真意正義上的隨機數,是一個偽隨機數,是根據一個數,稱之為種子,為基準以某個遞推公式推算出來的一系數,當這系列數很大的時候,就符合正態公布,從而相當於產生了隨機數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非破壞了系統,為了改變這個種子的值,C提供了srand()函數,它的原形是void
srand(
int
a)。
3.
在調用rand函數產生隨機數前,必須先利用srand()設好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為1。一般用for語句來設置種子的個數。
⑧ 如何用c語言產生一定范圍內的隨機數
利用srand((unsigned int)(time(NULL))是一種方法,因為每一次運行程序的時間是不同的。
在C語言里所提供的隨機數發生器的用法:現在的C編譯器都提供了一個基於ANSI標準的偽隨機數發生器函數,用來生成隨機數。它們就是rand()和srand()函數。這二個函數的工作過程如下:
1) 首先給srand()提供一個種子,它是一個unsigned int類型,其取值范圍從0~65535;
2) 然後調用rand(),它會根據提供給srand()的種子值返回一個隨機數(在0到32767之間)
3) 根據需要多次調用rand(),從而不間斷地得到新的隨機數;
4) 無論什麼時候,都可以給srand()提供一個新的種子,從而進一步「隨機化」rand()的輸出結果。
下面是0~32767之間的隨機數程序:
#include <stdlib.h>
#include <stdio.h>
#include <time.h> // 使用當前時鍾做種子
void main(void)
{int i;
srand((unsigned)time( NULL ) ); // 初始化隨機數
for(i = 0; i < 10;i++) // 列印出 10 個隨機數
printf("%d ", rand() );
}
根據上面的程序可以很容易得到0~1之間的隨機數:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main( )
{int i;
srand((unsigned)time( NULL ) );
for(i = 0; i < 10;i++)
printf("%5.2f ", rand()/32767.0);
}
而產生1~100之間的隨機數可以這樣寫:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main( )
{int i;
srand((unsigned)time( NULL ) );
for(i = 0; i < 10;i++)
printf("%d ", rand()%100+1);
}
(8)c語言產生一個隨機數擴展閱讀:
C語言高效編程技巧:
一:以空間換時間
計算機程序中最大的矛盾是空間和時間的矛盾,那麼,從這個角度出發逆向思維來考慮程序的效率問題
二:數學方法解決問題
數學是計算機之母,沒有數學的依據和基礎,就沒有計算機發展,所以在編寫程序的時候,採用一些數學方法會對程序的執行效率有數量級的提高。
三:使用位操作
實現高效的C語言編寫的第三招----使用位操作,減少除法和取模的運算。
在計算機程序中,數據的位是可以操作的最小數據單位,理論上可以用「位運算」來完成所有的運算和操作。一般的位操作是用來控制硬體的,或者做數據變換使用,但是,靈活的位操作可以有效提高程序運行的效率。
⑨ 怎麼用C語言生成隨機數
假設要生成的隨機數是大於等於20且小於等於100的整數
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
voidmain(){inta,b,x;
a=20;b=100;
srand((unsignedint)time(NULL));//用當前時間生成一個隨機數種子
x=rand()%(b-a+1)+a;
printf("得到一個隨機數:%d ",x);
}
⑩ 如何在C語言中生成一定范圍內的隨機數
srand((int)time(NULL));設定隨機數種子
rand()%100;產生0-99的隨機數。
高級點的,假如要產生16-59之間的數,你可以這樣寫:rand()%44+16(這里44由59-16+1得到)。其他情況如法炮製!