自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對(duì)C++庫(kù)函數(shù)進(jìn)行學(xué)習(xí)探索總結(jié)筆記

開發(fā) 后端
通過(guò)C++庫(kù)函數(shù)rand()產(chǎn)生的數(shù),說(shuō)的好聽(tīng)點(diǎn)是“偽隨機(jī)數(shù)”,其實(shí)根本不是隨機(jī)數(shù),更為豐富多彩的登錄和個(gè)性化服務(wù)以及更好的數(shù)據(jù)訪問(wèn)和同步。

C++庫(kù)函數(shù)作為一個(gè)高效的.NET程序語(yǔ)言。其混合了函數(shù)語(yǔ)言和物件導(dǎo)向程序編制語(yǔ)言,并且***的適用于編程、算法、技術(shù)和探索性開發(fā),因此可以在使用的過(guò)程當(dāng)中感受到趣味性和吸引力。

rand()產(chǎn)生“偽隨機(jī)數(shù)”的原理是:給定數(shù)x(如果調(diào)用者未指定,則使用默認(rèn)值),通過(guò)固定的計(jì)算公式1返回一個(gè)數(shù)y,這個(gè)數(shù)y就是所謂的偽隨機(jī)數(shù);同時(shí)通過(guò)固定的計(jì)算公式2,修改x,這樣下次調(diào)用rand()時(shí)就會(huì)得到一個(gè)新的y。通過(guò)上面這兩步,反復(fù)調(diào)用rand()會(huì)得到一個(gè)所謂的“偽隨機(jī)數(shù)”的序列。

因?yàn)閮蓚€(gè)計(jì)算公式是固定的,所以只要X1相同,那么產(chǎn)生的序列就相同。X1成為種子,seed。
如果調(diào)用者不指定種子,C++語(yǔ)言的rand()會(huì)使用默認(rèn)值。設(shè)置種子使用srand(unsigned int)函數(shù),這個(gè)函數(shù)的名字的***個(gè)字母s就是seed的意思。

因?yàn)闀r(shí)間的唯一性和一維性,所以可以用系統(tǒng)時(shí)間來(lái)作為種子。這樣可以保證每次運(yùn)行時(shí),rand()產(chǎn)生的序列都是不同的。在使用rand()前,以如下方式設(shè)置種子即可,
srand((unsigned int) time(0));

下面是《C Programming Language》中給出的rand()和srand()的一種實(shí)現(xiàn),可能是早期C++的庫(kù)函數(shù)的實(shí)現(xiàn)。

  1. int rand(void) {  
  2.   nextnext = next * 1103515245 + 12345;  //修改next的值  
  3.   return (unsigned int) (next/65536) % 32768;  //得到偽隨機(jī)數(shù)在0~32768之間  
  4. }  
  5.  
  6. void srand(unsigned int seed) {  
  7.   next = seed;   //設(shè)置種子  

也就是說(shuō),隨便你拿起哪本C++書籍(包括很多被人們廣泛稱為“必讀經(jīng)典”的),那么有很大的可能這本書中的內(nèi)容不是你應(yīng)該學(xué)的,而是你不應(yīng)該學(xué)的。我之所以這么說(shuō)有兩個(gè)原因,因?yàn)橐?,我曾?jīng)是受害者。二,也是更實(shí)質(zhì)性的原因,這些所謂的必讀經(jīng)典。

充斥的是介紹C++中的陷阱和對(duì)于C++庫(kù)函數(shù)的缺陷的各種workarounds(好聽(tīng)一點(diǎn)叫Idioms(慣用法)或techniques(技術(shù)));又因?yàn)?FONT>C++中的這類陷阱和缺陷實(shí)在數(shù)不勝數(shù),所以就拉出了一個(gè)“長(zhǎng)尾”;這類書籍在所有語(yǔ)言中都存在(“C缺陷和陷阱”、“Effective Java”、“Effective C#”等等)。#t#

然而在C++庫(kù)函數(shù)里面這個(gè)尾巴特別長(zhǎng),導(dǎo)致這類書數(shù)不勝數(shù)。三,這些書中列出來(lái)的缺陷和陷阱根本不區(qū)分常見(jiàn)程度,對(duì)于一個(gè)用本程序員來(lái)說(shuō),應(yīng)該希望看到“從最常見(jiàn)的問(wèn)題到最不常見(jiàn)的問(wèn)題”這樣的順序來(lái)羅列內(nèi)容,然而這些書里面要么全部混在一起。

要么按照“資源管理、類設(shè)計(jì)、泛型”這樣的技術(shù)分類來(lái)介紹內(nèi)容,這根本毫無(wú)幫助(如果我看到一個(gè)章節(jié)的內(nèi)容,我當(dāng)然知道它講的是類設(shè)計(jì)還是資源管理,還用廢話么?),使得一個(gè)學(xué)習(xí)者無(wú)法辨別并將最重要的時(shí)間花在最常見(jiàn)的問(wèn)題之上。

責(zé)任編輯:chenqingxiang 來(lái)源: qqread
相關(guān)推薦

2010-01-14 17:02:10

學(xué)習(xí)C++

2010-01-20 17:48:07

C++ 函數(shù)重載

2010-01-26 17:53:05

C++入門學(xué)習(xí)

2010-01-15 14:59:54

C++標(biāo)準(zhǔn)程序庫(kù)

2010-01-22 15:53:55

C++轉(zhuǎn)換

2009-08-13 18:21:52

C#學(xué)習(xí)筆記

2010-01-13 14:35:10

Visual C++

2010-01-13 18:47:53

C++教程

2010-01-28 14:04:35

C++鏈表

2022-08-05 13:38:08

C語(yǔ)言庫(kù)函數(shù)printf()

2010-01-25 14:31:07

C++類

2011-04-19 17:36:12

C++

2011-04-19 17:44:02

C++

2010-01-18 10:53:26

2010-01-21 18:00:59

C++語(yǔ)言

2010-01-11 14:05:01

C++學(xué)習(xí)方法

2010-01-22 11:13:16

C++靜態(tài)

2010-01-15 17:18:57

C++源程序

2022-12-16 15:20:19

RustC 語(yǔ)言

2010-01-27 16:52:31

C++語(yǔ)言學(xué)習(xí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)