編程概率思想
『壹』 C語言游戲中獎概率演算法
從思想上來所,隨機變數x有兩個值,0表示不中獎,1表示中獎。如果進行N次實現,如果出現1的次數 / N = p%的話,我們說,x為1的概率為p%
STDLIB 中 rand() 函數的返回值,我們可以認為是服從平均分布的隨機變數的值。通過不等式的變換,我們可以得到任意范圍內,平均分布的隨機變數。
比如說,20%的中獎率,我可以定義, 取[0, 99]的隨機整數,如果該值為[0, 20) 則中獎,否則不中,那麼中獎率就為 20%
『貳』 C++編程 如何編概率
我的先問一哈,你是要結果的概率一定等與那個嘛
『叄』 哪位計算機達人知道概率如何用編程實現啊
詳細代碼請參閱我下面給出的參考地址 東西太多 不好復制
很多演算法的每一個計算步驟都是固定的,而在下面我們要討論的概率演算法,允許演算法在執行的過程中隨機選擇下一個計算步驟。許多情況下,當演算法在執行過程中面臨一個選擇時,隨機性選擇常比最優選擇省時。因此概率演算法可在很大程度上降低演算法的復雜度。
概率演算法的一個基本特徵是對所求解問題的同一實例用同一概率演算法求解兩次可能得到完全不同的效果。這兩次求解問題所需的時間甚至所得到的結果可能會有相當大的差別。一般情況下,可將概率演算法大致分為四類:數值概率演算法,蒙特卡羅(Monte Carlo)演算法,拉斯維加斯(Las Vegas)演算法和舍伍德(Sherwood)演算法。
數值概率演算法常用於數值問題的求解。這類演算法所得到的往往是近似解。而且近似解的精度隨計算時間的增加不斷提高。在許多情況下,要計算出問題的精確解是不可能或沒有必要的,因此用數值概率演算法可得到相當滿意的解。
蒙特卡羅演算法用於求問題的准確解。對於許多問題來說,近似解毫無意義。例如,一個判定問題其解為「是」或「否」,二者必居其一,不存在任何近似解答。又如,我們要求一個整數的因子時所給出的解答必須是准確的,一個整數的近似因子沒有任何意義。用蒙特卡羅演算法能求得問題的一個解,但這個解未必是正確的。求得正確解的概率依賴於演算法所用的時間。演算法所用的時間越多,得到正確解的概率就越高。蒙特卡羅演算法的主要缺點就在於此。一般情況下,無法有效判斷得到的解是否肯定正確。
拉斯維加斯演算法不會得到不正確的解,一旦用拉斯維加斯演算法找到一個解,那麼這個解肯定是正確的。但是有時候用拉斯維加斯演算法可能找不到解。與蒙特卡羅演算法類似。拉斯維加斯演算法得到正確解的概率隨著它用的計算時間的增加而提高。對於所求解問題的任一實例,用同一拉斯維加斯演算法反復對該實例求解足夠多次,可使求解失效的概率任意小。
舍伍德演算法總能求得問題的一個解,且所求得的解總是正確的。當一個確定性演算法在最壞情況下的計算復雜性與其在平均情況下的計算復雜性有較大差別時,可以在這個確定演算法中引入隨機性將它改造成一個舍伍德演算法,消除或減少問題的好壞實例間的這種差別。舍伍德演算法精髓不是避免演算法的最壞情況行為,而是設法消除這種最壞行為與特定實例之間的關聯性。
『肆』 1.1 什麼是概率編程
概率編程是一種系統創建方法,它所創建的系統能夠幫助我們在面對不確定性時做出決策。許多日常決策涉及在確定無法直接觀測的相關因素時的判斷能力。歷史上,幫助在不確定性下做出決策的方法之一是使用概率推理系統。概率推理將我們對某種情況的認識和概率法則結合起來,確定無法觀測的決策關鍵因素。直到最近,概率推理系統的范圍仍然有限,難以應用到許多現實情況中。概率編程是一種新方法,它使概率推理系統更容易構建,適用范圍更廣。
要理解概率編程,首先要觀察不確定性條件下的決策過程和涉及的主觀判斷。然後,您將了解概率推理是如何幫助您做出決策的。您將注意到概率推理系統所能進行的3種推理,也就能理解概率編程,以及通過編程語言的能力用概率編程構建概率推理系統的方法。
『伍』 概率編程比較適用於哪些問題
而頻率派的觀點,他們設定概率是事件的長期頻率。比如飛機發生事故的概率,頻率派解釋為飛機事故的長期頻率。這在很多事件的概率問題上看上去確實有邏輯合理性,但當一個事件不會經常出現,無法統計長期的發生頻率的話,就很難解釋通了。比如總統選舉的概率,因為該選舉只發生一次。
『陸』 概述概率的基本思想和方法
概率統計中的數學思想可分為特有的數學思想和一般的數學思想,其中特有的數學思想主要有隨機思想、統計調查思想、統計描述思想、統計推斷思想等。通過豐富的實例,建立正確的概率直覺,發展隨機思想;讓學生在統計調查活動中理解和掌握統計調查思想;讓學生探索以簡單而直觀的形式最大限度描述數據,掌握統計描述思想;實施樣例教學,讓學生認真分析數據,作出合理的決策,掌握統計推斷思想;讓學生經歷提出問題、收集數據、整理數據、分析數據、作出判斷和評價的過程,逐步形成統計觀念;揭示概率統計中各種數學思想的內在聯系,以形成數學思想的網路體系。
目前對概率統計的教學研究主要集中在概率與統計的解題研究、教育價值和統計觀念培養等問題上,對中學概率統計中的數學思想的研究不多,其中對概率統計中特有的數學思想及其教學的研究極少。我們認為[1],中學概率統計中的數學思想可分為特有的數學思想和一般的數學思想,其中特有的數學思想主要有隨機思想、統計調查思想、統計描述思想、統計推斷思想等;一般的數學思想主要有分類思想、歸納思想、特殊化思想、化歸思想、模型化思想、數形結合思想等。
『柒』 matlab中概率情況怎麼編程
隨機變數的累積概率值(分布函數值)
1 通用函數計算累積概率值
命令 通用函數cdf用來計算隨機變數的概率之和(累積概率值)
函數 cdf
格式
說明 返回以name為分布,隨機變數X≤K的概率之和的累積概率值,name的取值見表4-1 常見分布函數表
2 專用函數計算累積概率值(隨機變數的概率之和)
命令 二項分布的累積概率值
函數 binocdf
格式 binocdf (k, n, p) %n為試驗總次數,p為每次試驗事件A發生的概率,k為n次試驗中事件A發生的次數,該命令返回n次試驗中事件A恰好發生k次的概率.
命令 正態分布的累積概率值
函數 normcdf
格式 normcdf() %返回F(x)=的值,mu,sigma為正態分布的兩個參數表
專用函數的累積概率值函數表
函數名
調用形式
注 釋
unifcdf
unifcdf (x, a, b)
[a,b]上均勻分布(連續)累積分布函數值 F(x)=P{X≤x}
unidcdf
unidcdf(x,n)
均勻分布(離散)累積分布函數值 F(x)=P{X≤x}
expcdf
expcdf(x, Lambda)
參數為Lambda的指數分布累積分布函數值 F(x)=P{X≤x}
normcdf
normcdf(x, mu, sigma)
參數為mu,sigma的正態分布累積分布函數值 F(x)=P{X≤x}
chi2cdf
chi2cdf(x, n)
自由度為n的卡方分布累積分布函數值 F(x)=P{X≤x}
tcdf
tcdf(x, n)
自由度為n的t分布累積分布函數值 F(x)=P{X≤x}
fcdf
fcdf(x, n1, n2)
第一自由度為n1,第二自由度為n2的F分布累積分布函數值
gamcdf
gamcdf(x, a, b)
參數為a, b的分布累積分布函數值 F(x)=P{X≤x}
betacdf
betacdf(x, a, b)
參數為a, b的分布累積分布函數值 F(x)=P{X≤x}
logncdf
logncdf(x, mu, sigma)
參數為mu, sigma的對數正態分布累積分布函數值
nbincdf
nbincdf(x, R, P)
參數為R,P的負二項式分布概累積分布函數值 F(x)=P{X≤x}
ncfcdf
ncfcdf(x, n1, n2, delta)
參數為n1,n2,delta的非中心F分布累積分布函數值
nctcdf
nctcdf(x, n, delta)
參數為n,delta的非中心t分布累積分布函數值 F(x)=P{X≤x}
ncx2cdf
ncx2cdf(x, n, delta)
參數為n,delta的非中心卡方分布累積分布函數值
raylcdf
raylcdf(x, b)
參數為b的瑞利分布累積分布函數值 F(x)=P{X≤x}
weibcdf
weibcdf(x, a, b)
參數為a, b的韋伯分布累積分布函數值 F(x)=P{X≤x}
binocdf
binocdf(x,n,p)
參數為n, p的二項分布的累積分布函數值 F(x)=P{X≤x}
geocdf
geocdf(x,p)
參數為 p的幾何分布的累積分布函數值 F(x)=P{X≤x}
hygecdf
hygecdf(x,M,K,N)
參數為 M,K,N的超幾何分布的累積分布函數值
poisscdf
poisscdf(x,Lambda)
參數為Lambda的泊松分布的累積分布函數值 F(x)=P{X≤x}
說明 累積概率函數就是分布函數F(x)=P{X≤x}在x處的值.
『捌』 編程思想是什麼
樓主,是不是要問的是C++里的"面向對象"的編程思想呀!?
如果是,則這個編程思想,就是一個問題的解決方法...
"面向對象"的核心在於,先把所有要解決的分類!
每一類都是包含有特定的屬性(功能)!
比如說如果你要用程序來模擬一類游戲角色,如游戲中的主角,它們會有男,有女,有戰士有法師等等,但實質上它們都有共同特徵,如所有的角色都有攻,防,生,魔等等相同的屬性,它們唯一不同的是在屬性的數值和屬性的數量上!
那麼,這時"面向對象"的編程思想實際上就是把前面所說的主角,都在程序時建立成一個對象,
該對象里用某一數據類型對應各主角所有屬性!
之後,
以後如果想建立一個戰士的話,那麼,就定義一個名字為"戰士"的對象,對象的結構就是剛才所說的結構!
然後再根據戰士的特點賦初值...之後,一個完整的角色就建立完成了...其它的,弓手,法師都是一樣的方法建立,不同的只是它們的屬性初始值!!!
從上面可以很明顯的看出,這樣的程式設計方法,在以後維護起來是非常直觀和簡便的...(因為,程序的結構和人對現實所理解的結構是很相近的)...當然,這種思想也有缺點...從上面就可以看出,盡管戰士可能沒有法師的魔法技能,但是在設計上,也得包含進去!
否則就很難統一在一起了!
(當然,這個問題也可以把戰士,弓手,法師各自分類建立來解決,但這樣一來,當一個共同屬性要修改的時候,那麼就會從以前只需修改一個對象變成現成需要修改N個了,這樣一來,無異加大了以後的維護量!!!
其實,在用"面向對象"的編程思想來設計程序時,剛才的那個缺點是無可避免的.
因為,在同一類里,大多數情況都會有某一個個體對像的某個屬性是多餘的!!!,也就是,這樣肯定會浪費一定的系統資源!!!,當然,由這樣的方法帶來的方便和易維護也是非常直接實用的!
到底怎樣去設計,最後還得看具體情況)
『玖』 有關概率的編程
用C#可以用switc 判斷,在用if判斷,主要你問題不是很清楚
『拾』 什麼叫編程思想
編程思維,是一種高效率解決問題的方式,是「理解問題——找出路徑」的高效思維過程,它由「分解—抽象—模式識別—演算法」四個步驟組成。
1、分解,簡單來說,就是「把復雜的大問題,拆解成更可執行、更好理解的小步驟」,它能鍛煉我們拆解復雜問題的能力。
編程的過程,就是把復雜和龐大的問題「自上而下,逐步拆解,直至理順」。這種思維,在學習和生活叫「分解思想」,在工作中又叫「項目管理」。
具備這種思維的人,做事情是有條不紊並且有耐心的。而分解能力好的孩子,即便面對一道有挑戰的數學題,也能列出清晰的解題步驟,清楚地知道自己每一步的進展,而不是遇到難題時腦子里一團亂麻。
2、編程中最關鍵的就是「抽象思維」能力,它能鍛煉我們聚焦重點,忽略無用信息,並抽取關鍵信息的能力。
編程的世界裡,就包含「子系統、模塊、包、類、方法和語句」等不同層級的抽象,學編程能鍛煉孩子們不斷抽象、聚焦關鍵信息的能力。
抽象思維能力越高的孩子,在大量信息中聚焦關鍵信息的能力會越強,專注力也會更高,自然學習也會更輕松。
3、模式識別,就是「如何找出相似的模式,並高效率解決細分問題」,它能極大鍛煉我們規律整合的能力。善於發現和總結規律的人,常常做事麻利、效率也特別高。
4、演算法,就是根據之前一系列對於問題的理解,設計一步一步的解決路徑,並解決整個問題。
在具體解決問題的過程中,最關鍵的能力有兩個 ——「邏輯思維」和「調試糾錯」。
希望對您有所幫助!