隨機數的產生
大多數情況下使用函式 srand() 和 rand() 即可搞定,這兩個函式包含於標頭檔案 中。為了取得可變的隨機碼,必須在使用rand()前呼叫srand()函式來取得隨機種子,這樣編譯後的程式才在每次執行時可以產生不同的隨機數。
例子:
srand( ( unsigned ) time( null ) ) ;
一般取系統時間為種子,time() 函式包含於標頭檔案中,注意新增。需要注意的一點是time()函式取的時間最小間隔為1s,也可以用clock()函式,它的時間間隔為1ms。
rand();
可以取到的隨機整數範圍是0到rand_max,rand_max在都檔案中用巨集定義的,一般為28。
rand()%100;
表示取0到99間的隨機整數。但此方法並不是很好,取出的各個數並非等概率。更好的方法是在rand_max
中設定幾個等長段,這樣隨機數調入段中概率才是均等的。
// return a random integer in the range `[0,' `n)'
int nrand(int n)
下面附乙個:
求區間[0,n)你可能認為rand()%n就足夠了,但在實際中這個技巧會因為兩個原因而導致失敗。
1、rand()函式真正返回的是偽隨機數。在除數是小整數時,很多c++系統的偽隨機數生成器生成的餘數並不是非常隨機
化的。比如,rand()函式產生的連續結果常常會交替出現奇數和偶數。如果是那樣的話,如果n=2,rand()%n的連續結
果就將交替出現0和1。
2、如果n的值很大,並且rand_max不可被n整除的話,一些餘數就會過於頻繁的出現。比如,假定rand_max是
32767,n是20 000。在這種情況下,rand()函式就會有兩種截然不同的值,它們會使得rand()%n成為10 000(也就是
rand()為10 000和30 000),但是rand()只有乙個值能使rand()%n成為15 000(也就是rand()為15 000)。因此,執行rand%n
的天真系統在對rand()%20 000時,生成10 000的次數會是生成15 000的次數的兩倍。
幾個常用的PHP函式
最近在看 發現以下是幾個比較實用的函式。1,取客戶端ip 檢視複製列印?這裡,如果使用多級 的使用者,真實ip是取不到的。2,字串擷取,支援中文 檢視複製列印?function getstrtruncate string length 80,etc str c return str etc else...
XPATH的幾個常用函式
1.contains div contains id,in 表示選擇id中包含有 in 的div節點 2.text 由於乙個節點的文字值不屬於屬性,比如 baidu 所以,用text 函式來匹配節點 a text baidu 3.last 前面已介紹 4.starts with div starts...
ArrayUtils常用的幾個函式
arrayutils.isempty strs 判斷陣列是否為空 不為空false,空true eg arrayutils.isempty newstring false arrayutils.isnotempty strs 和上面相反 arrayutils.isequals str1,str2 判...