怎麼寫隨機數
- 綜合知識
- 關注:9.83K次
C語言函式名rand()
簡介
功 能::偽隨機數發生器 所屬庫:stdlib.h
用 法: 需要先呼叫srand初始化,一般用當前日曆時間初始化隨機數種子,這樣每次執行程式碼都可以產生不同的隨機數。
函式原型:int rand(void); 相關函式:srand、time、GetTickCount
程式例
1: #include "stdio.h"
#include "stdlib.h"
int main(void) {
int i;
printf("Ten random numbers from 0 to 99nn");
for(i=0; i<10; i++)
printf("%dn", rand() % 100);
return 0; }
例1程式在每次執行時都會生成相同的十個偽隨機數,如要每次生成的隨機數不同應結合srand函式和time函式。
///////////////////
int i,a;
for(i=0;i<3;i++)
{
a=rand()%9;
printf("%d",a);
}
2. 隨機數的函式怎麼寫使用rand()函式生成隨機百數;
種子可以度使用srand()函式生成
函式示例,該程式使用時間做種子,內有使用者輸容入產生不同位數的隨機數
#include <iostream>
#include "ctime"
using namespace std;
int main()
{
int num;
char ch;
srand( (unsigned)time( NULL));
while(1)
{
cin>>ch;
switch(ch)
{
case '1' :num=rand()%10;break;
case '2' :num=rand()%100;break;
case '3' :num=rand()%1000;break;
case '4' :num=rand()%10000;
}
cout<<num<<endl;
}
return 0;
}
3. C語言抽取隨機數怎麼編寫C語言中有自己的隨機數函式rand()
其原型為
int rand();
功能為獲取一個隨機整型數。
所在頭檔案為stdlib.h
抽取10個隨機數並輸出的程式可以寫成
#include<stdio.h>
#include <stdlib.h>
int main()
{
int i;
for(i = 0; i < 10; i ++)
printf("%dn", rand());
return 0;
}
在應用中,需要的隨機數往往是一個範圍,比如要隨機生成一組合法的整型分數的時候,實際上是需要生成一組[0,100]的隨機整數。要達到這樣的目的,可以通過取餘運算(模除運算)來實現。
對於a%b的值,其結果範圍在[0,b-1]之間。依照這個原理,如果要得到範圍在[a,b]的隨機整數,可以先求得[0,b-a]範圍的隨機數,再在結果上加a即可。
也就是
rand()%(b-a+1) + a
於是在之前程式碼的基礎上,抽取10個值在[0,100]範圍內的隨機數程式可以寫成
#include<stdio.h>
#include <stdlib.h>
int main()
{
int i;
for(i = 0; i < 10; i ++)
printf("%dn", rand()%101);//這裡增加了模除運算,由於最小值就是0,所以不需要加法了。
return 0;
}
值得注意的一點是,C語言提供的rand函式是偽隨機數,如果不做其它處理,那麼每次執行程式獲取到的隨機數序列是固定的。為了解決這個問題,C語言還定義了srand這個庫函式,用來設定一個隨機數種子,從而得到一個不確定的隨機初始值。
srand要求有一個int型的引數,這個引數比較常見的做法是用time(NULL)來獲取當前微秒數來充當。
於是一個完整的設定隨機數種子的操作為
srand(time(NULL));
其中time函式需要引入time.h來宣告。
srand函式需要在第一次呼叫rand前呼叫,這樣獲取[0,100]間10個隨機整數並輸出的程式就最終被修改為
#include<stdio.h>
#include <stdlib.h>
#include <time.h>; //增加time函式的標頭檔案
int main()
{
int i;
srand(time(NULL));//設定隨機數種子,只需要呼叫一次即可。
for(i = 0; i < 10; i ++)
printf("%dn", rand()%101);
return 0;
}
4. c語言怎麼寫隨機數(不要偽隨機)rand函式也是呼叫dos的時鐘,進行的偽隨機函式。
你也可以使用時鐘來模擬隨機函式。可以試用gettime這個函式:longintMyRand(intx){structtimet1,t2,t3;gettime(&t1);inty1=t1.ti_hund;//取1/100s作為基數gettime(&t2);inty2=t2.ti_hund;//取1/100s作為基數gettime(&t3);inty3=t3.ti_hund;//取1/100s作為基數returny1*y2*y3;//產生的隨機數0~99*99*99}。
5. 如何寫一個隨機數生成程式碼c++的在開頭加上 #include <time.h>
int seed = time( 0 ); // 這裡是種子
const int MAX = 10;
double value[MAX] = { 0.0 };
srand( seed );
for( int i = 0; i < MAX; i++)
value[i] = rand() / ( RAND_MAX + 1.0 );
6. 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了。
7. 用js 寫隨機數的程式碼,怎麼寫js隨機數
Math.random(),這個函式返回值是一個大於等於0,且小於1的隨機數
所以Math.random() * n 值域為 [0, n)
結合Math.floor()生成一位整數的函式
function randNum(){
return Math.floor(Math.random() * 10); //大於等於0,且小於10的整數
}
兩個隨機數想加 var checkStr = randNum() + '+' + randNum() + '= ?';
驗證思路:
生成兩個隨機數,並把計算結果儲存在變數中,當提交註冊時,判斷使用者輸入的值是否和已儲存變數的值一樣
- 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/zonghezhishi/wrgon9.html