關於隨機數取法的注意事項

2021-08-18 20:03:26 字數 817 閱讀 7837

今天在抽取我們班男生的學號(ps由於一些情況,我把源程式做了修改,以應對一些只需要女生或者男生的情況)的時候,程式出現了錯誤的結果;抽取了兩個結果但是出現了乙個不應該出現的結果:35;

我們班的學號最大只到30所以源程式的設計上一定出了問題。

這是源程式:

#include

#include

#include

main()

這是男生版本的;但是在我測試女生和全班版本的時候並沒有出現這樣的問題。所以問題很明顯的鎖定在了賦值的位置;

通過三個程式之間的互相對比之後,有這樣乙個情況:全班版本的程式和女生版本的額源程式都是從一開始,也就是說,給陣列賦值的語句是這樣寫的:

p[i]=rand()%30+1;//全班版

p[i]=rand()%6+1;//女生版

但是男生版的賦值語句都是這樣寫的:

p[i]=rand()%30+8;//男聲版

然後就出現了35的結果,當我放大抽取資料的個數的時候,出現大於30的結果更多。但是男生版本的資料最大的只達到了38,

於是乎我就猜到了隨機數的範圍確定的方法:

p[i]=rand()%從開始位置向後擴大的範圍的數字+開始的位置數字;

換句話來說,rand()%30+1;的意思是:這個隨機數的範圍下限是1上限是30,就是說」1」是三十個隨機數中的第乙個,第三十個是30;rand()%30+8;的意思是:「8」是第乙個數字,那麼第三十個數字就是38;

所以會出現這樣的情況;

#include

#include

#include

main()

這個是女生版本的;

關於隨機數

昨天去網易筆試,最後一道題實在沒有時間寫了,大概題目這樣的 床前明月 疑是地 霜,舉頭望 月,低頭思故 a.光 上 明 鄉 b.上 明 鄉 光 c.鄉 上 明 光 d.光 鄉 上 明 請你編寫一函式,隨機扣掉每一句的乙個字,然後生成3個錯誤選項,乙個正確選項,選項的字必須是詩裡所缺的字。請寫出資料結...

關於隨機數

一般來說隨機數在系統中用於生成對稱金鑰,所以隨機數在安全中的地位至關重要,由於系統或者硬體的因素,生成真實的隨機數存在著效能上的問題,對於服務端來說,一次生成大量的真隨機數比較困難,實際應用中都是把真隨機數作為種子 隨機數生成演算法生成大量的隨機數,稱為偽隨機數。為了保證偽隨機數的安全性,防止被 對...

關於隨機數!

1 眾所周知,c語言的隨機函式 rand 每次執行的結果是一樣的。如下 那麼就需要設定隨機種子了,srand gettickcount 如下 2 從指定佇列取n個隨機數 借助stl的函式可以完成。templatevoid random shuffle randomaccessiterator fir...