1樓:一顆程式猿
使用時間函式獲取當前的時間ticks, 然後把它傳遞給rand的建構函式, 這樣每次的序列就不同了。
2樓:哎呀
//-用時間作為隨機種子,除非時間(time(null))是一樣的,否則得到的隨機數就不一樣。
int randme(int intls)
3樓:網友
先取乙個隨機種子。
srand() 一般是填 time(0); srand((unsigned int)time(0));
rand();就可以了。 配合 % 和 + 可以讓隨機數符合自己想要的範圍。
如果要取乙個 0 - 99的數;就用 rand() 10050 - 99的數, 就用 rand() 50 + 50
c++中rand()%100在每次執行時所給的隨機數都是41,如何每次執行得到不同的隨機數?
4樓:匿名使用者
在呼叫rand前 呼叫一下srand(time(0));
c++中rand()每次產生的隨機數是不是應該不相同嗎?但是我的怎麼都一樣啊 ???是編譯器改進的原因嗎?
5樓:
#include
main裡面加du上。
for(int i=0:i<4;i++)
{srand((unsinged)time(null) )
cout《隨機。
zhi數dao要種子的,專是偽隨機,並不是真屬是隨機。
6樓:匿名使用者
看著是不一樣,不過如果你反覆啟動這個程式呢,就一樣了,加上種子就不一樣了,哦,樓上的型別寫錯了,應該是unsigned
c++中隨機函式怎麼用 rand()%9+1是什麼意思
7樓:匿名使用者
rand()隨機產生乙個浮點copy數,沒bai有區間,這與vb的rnd不同。
rand()%9+1,是先把durand()產生zhi的浮點數自動取整,再對dao9取餘,最後+1.
最終結果是隨機產生乙個1到9之間的整數,即有可能是1,2,3,4,5,6,7,8,9
8樓:小宛姓糖
rand()%9表示隨機產生的最大值為(9-1)就是8
9樓:鎮胤邛姮
rand是取隨機數的函式。你給出的語句意思就是說:a[i][j]這個數等於rand()這個函式產生的乙個隨機數,除以1000後再加1……
c++ 產生不同隨機數
10樓:匿名使用者
一。 不指定範圍產生隨機數。
用到函式rand(),函式原型為int rand(),無引數。此時會產生乙個介於0~rand_max間的整數。rand_max的大小可以檢視,在include資料夾(linux在usr目錄、windows在安裝目錄)的stdlib.
h可以看到,linux下其值為2147483647(),其值與具體系統有關。
範例:二。 指定範圍產生隨機數,產生0到某個數的隨機數沒有現成的函式,但是可以通過取餘得到。
範例:注意:以上兩個程式每次執行產生的結果是相同的,既是個偽隨機數。
rand()產生隨機數與具體的種子有關,當不特意用srand()獲取種子時,種子的預設值為1,因此需要用srand()函式產生不同的種子,srand函式原型:void srand(unsigned seed);為了產生不同的種子值,通常用時間作為引數值。
三。 指定範圍產生隨機數。
要求:指定範圍(m,n),m、n關係不定,隨機數包括m和n想方設法,把範圍(m,n)改變到(0,x),到最後再轉移回去。三種情況範例:
11樓:匿名使用者
你可以把srand((unsigned)time(null));這個種子設定函式放到迴圈外面啊!
c++中怎麼在一次呼叫裡產生多個不同的隨機數?
12樓:匿名使用者
你的的程式修改下。
#include
#include
#include
int ran();
void main()
int ran()
這樣的話就能有不同的值了,注意隨機數發生器初始化的位置,是程式執行的時候。
13樓:匿名使用者
先對隨機數發生器初始化一下,這個程式能在200之內取數比較平均#include
#include
#include
void main()
14樓:
函式返回值一般只能返回乙個值,如果要返回多個值,有兩種方法,均是以陣列方式實現:一、函式定義為指標函式,即:返回值為乙個指標,指向乙個陣列。
二、通過函式引數返回資料。即:陣列定義在呼叫者**中,自定義函式中只是完成陣列的賦值。
c++中產生不重複的隨機數
15樓:韻城之都的管家
因為windows下rand函式取值只有32767個,你可以試試rand()*rand(),這樣可以生成32767*32767範圍的數!
16樓:匿名使用者
演算法就是,每生成乙個數就與原來生成的數比較,如果有相等的就就重新生成乙個數,這樣就能保證10個數都不相等了。下面這個程式生成數的範圍是0到100:
#include
#include
#include
#define max 100
using namespace std;
int main()
}if(!ret)
if(i==10)
}while(--i)}
17樓:匿名使用者
rand_max是32767, 於是rand()/rand_max得到是1/32767~32767/32767, 乘上n依然只有32767個數。
可以通過(rand() 16) |rand(),即高16位和低16位分別產生隨機數的方法得到更大的隨機數。
另外先儲存再取是個空間時間都特低效的辦法, 更好的演算法可以自己搜一下"c++產生不重複隨機數"
18樓:匿名使用者
用rand()函式,你先網上看看rand()是怎麼用的,注意它是偽隨機,初始化種子要設好,網上查下資料多想下就知道了。接著是,你要不同的10個數。你可以設個陣列儲存已經產生的數。
比如已經產生了第乙個數5,你用rand()生成了又乙個5時,比較一下以產生的數發現是5,就跳過,看下乙個。總能產生10個不同的隨機數。 缺點是rand()不夠好,而且演算法不夠優化,但是能滿足你的要求,就10個數,不影響效率。
如果你要上萬個不一樣的就要好好優化演算法了。
19樓:匿名使用者
#include
#include
#include
#define max 100
using namespace std;
int main()
}if(!ret)
if(i==10)
}while(--i)
} 不應該用int定義main函式 沒有整形的返回值,並且j沒有初始化。
c++生成隨機數,要求在1-10之間,並且每次生成的值都不一樣,該如何解決,請詳細!
20樓:匿名使用者
樓上中間部分改一下應該就ok了。
比較懶,直接借用樓上的了,別介意哈(純手打,寫錯了自行調整一下int j; /用來檢查重複。
static int a[0]=;
cout<<"這是乙個隨機生成10個數字的程式,生成的數在1到10之間。for(i = 0; i < 10; )下標遞增放後面處理++i; /準備下乙個數下標}
21樓:匿名使用者
生成時比較下,重複的刪掉就好了唄。
c++中怎麼設定隨機變數,就是在幾個數中隨機產生乙個數。每次執行時都是隨機的不同的。 20
22樓:網友
關鍵點:使用隨機種子函式srand(time(0))
c 中random函式的功能有哪些 怎麼用啊
首先初始化隨機種子,一般使用當前時間,再在需要使用隨機數的時候呼叫rand 函式。include include include int main 新標準c 不建議使用rand 函式產生隨機數。你可以去看看default random engine這個類。時間的隨機生成數 eg,int x rand...
C 中函式過載有什麼用,C語言和C 語言的區別是什麼?
類的建構函式跟類名相同,即建構函式都同名。如果沒有函式過載機制,要想例項化不同的物件非常麻煩。操作符過載,本質上就是函式過載,它大大豐富了已有操作符的含義,方便使用,例如 可用於連線字串等。過載函式是函式的一種特殊情況,為方便使用,c 允許在同一範圍中宣告幾個功能類似的同名函式,但是這些同名函式的形...
什麼是c析構函式,在C 中什麼叫析構函式,怎麼用啊?舉個列啊,謝謝!!!
析構函式和建構函式正好相反.建構函式是和類同名.沒有返回值.析構函式是在類名前加 也沒有返回值.建構函式上在物件建立時執行.析構函式是在程式結束時執行.一般時候析構函式裡面寫的都是一些資源 之類的東西.不過c 的析構函式的呼叫機制和c 不同.並不能保證每次都會呼叫.所以最好不要利用c 的析構函式來 ...