日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解析游戏中的简单概率算法

發布時間:2023/12/31 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解析游戏中的简单概率算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

什么是概率算法?

概率算法也叫隨機化算法。概率算法允許算法在執行過程中隨機地選擇下一個計算步驟。在很多情況下,算法在執行過程中面臨選擇時,隨機性選擇比最優選擇省時,因此概率算法可以在很大程度上降低算法的復雜度。
概率算法的一個基本特征是對所求解問題的同一實例用同一概率算法求解兩次可能得到完全不同的效果。這兩次求解問題所需的時間甚至所得到的結果可能會有相當大的差別。

應用

用于游戲中的寶箱,陷阱之類的隨機生成,可以改變生成的幾率。

思想

運用產生隨機數的函數rand()來隨機生成一個數,和產生寶箱或陷阱的概率進行比較,如果小于就生成寶箱或陷阱,反之則不生成。

注意

rand()函數

rand(產生隨機數)
表頭文件: #include<stdlib.h>
定義函數 :int rand(void)

函數說明 :
因為rand() 的內部實現是用線性同余法做的,它不是真的隨機數,只不過是因為其周期特別長,所以有一定的范圍里可看成是隨機的,rand() 會返回一隨機數值,范圍在 0 至 RAND_MAX 間
在調用此函數產生隨機數前,必須先利用 srand()設置好隨機數種子,如果未設隨機數種子,rand()在調用時會自動設隨機數種子為 1。
rand()產生的是假隨機數字,每次執行時是相同的。若要不同,以不同的值來初始化它,初始化的函數就是 srand()。
使用srand函數要包含time.h頭文件,然后使用srand(time(0))來使用當前時間使隨機數發生器隨機化,這樣就可以保證每兩次運行時可以得到不同的隨機數序列,同時這要求程序的兩次運行的間隔超過1秒。

返回值:
返回 0 至 RAND_MAX 之間的隨機整數值,RAND_MAX 的范圍最少是在 32767 之間(int),即雙字節(16位數)。
若用unsigned int 雙字節是 65535,四字節是 4294967295 的整數范圍。
0~RAND_MAX 每個數字被選中的機率是相同的。

代碼實現

#include<iostream> #include<stdlib.h> #include<time.h> using namespace std;int main() {int TreasureBox = 20;//寶箱掉落的概率為20srand(time(NULL));//使這個初始化種子保持著時刻不同int pr = rand() % 101;//0-100if (pr < TreasureBox){cout << "掉落寶箱"<<endl;return 1;}else{cout << "不掉落寶箱"<<endl;return 0;}}

這只是一個簡單的概率算法,如有意見歡迎在下面評論提出!

總結

以上是生活随笔為你收集整理的解析游戏中的简单概率算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。