隨機數 網遊墊裝備及其思考

2021-09-06 02:35:32 字數 2086 閱讀 8892

學而無術者比不學無術者更加愚蠢       ----富蘭克林

玩遊戲的,總歸會有很多心得,網上略微搜一下,就會發現很多墊裝備的言論,很多人相信墊裝備有用.這是問題!!

ok,讓我們來把問題簡化一下,因為裝備打造合成概率實在是繁複,所以存在必要的簡化.問:

連續的拋一枚硬幣,失敗n次之後,第n+1次失敗的概率是多少?會不會比50%高(!!!這是我們真正要搞定出的問題).

拋硬幣,是隨機事件.理論上講,成功失敗的概率各50%(頭像朝上與否),而且任何兩次隨即之間完全無關.否則他就不叫隨機事件了.當年概率論學的不好,但是頭腦裡面還有一點意識,我不相信連續的失敗可以明顯提高成功的概率!

但是理論學的太差,我不能證明第n+1次的概率還是那麼高.....好吧,我只能寫**,看看模擬的真實情況是什麼樣子,來**:

#include #include #include #include #include #pragma comment(lib, "advapi32.lib")

#define random_times 1000000

#define fail_times 5

#define fail_percent 50

#define percent_max 100

//#define c_random

#ifdef c_random

//nop

#else

#define rand_max 65535

static hcryptprov hprovider = 0;

static const dword dwlength = 2;

static byte pbbuffer[dwlength] = {};

#endif

static void

random_init()

static void

random_close()

static int

_random()

static long random_count = 0;

static int

random_result()

else

}random_count++;

return _random();

}int main(int argc, char* argv)

std::cout<<"total: "<

這裡用了兩種隨機數的實現,一種是標準c隨機數,另外是cryptgenrandom.windows下面沒/dev/random和/dev/urandom,所以用哪個api代替.

**我不想做過多的解釋,比較重要的就那幾個巨集,沒事幹自己改變一下巨集,執行一下,看看結果:-)我這邊cryptgenrandom的兩次結果:

total: 1000000

fail: 499497

random_count: 62905788

請按任意鍵繼續. . .

total: 1000000

fail: 499914

random_count: 62979706

請按任意鍵繼續. . .

另外再上一次標準c隨機數的執行結果:

total: 1000000

fail: 500330

random_count: 63103246

請按任意鍵繼續. . .

可以看到,幾次隨即模擬的結果,差不多是相似的:連續失敗n次之後,第n+1次的概率是不變的.這才叫隨機事件.:-)

但是問題還沒完,這裡需要架設隨機數的質量非常的好,兩次隨機之間沒有關聯.事實上,標準c的隨機數很難做到這一點(偽隨機數生成器).偽隨機數,有可能被破解,**;真隨機數不會:-d.

所以,網遊在進行跟rmb相關的隨機時,可以考慮一下真隨機數,或者是質量稍微好一點的rng;跟rmb無關的,libc的rand/rand_r足矣~~~~

ps:記得我們乙個策劃,給怪物掉落的概率設定的太低(20%還是25%),然後打了據說有四十幾個怪,乙個東西都沒掉....後來換成rand_r,效果好了很多.

參考:

關於隨機數的思考

昨天,下雨了,去了乙個公司面試,出來就下雨了,開始 身上全濕了.最後在地鐵口躲雨.看這地上的六邊形的方磚,雨地落在上面.我認為落在方磚上的雨點 滴 應該是符合均勻分布的,仔細看了半天,發現似乎是這樣.這樣我想起了,計算機生成的隨機數 偽隨機數 以前在往上看到過有的人認為這樣生成的數不是隨機的,用來做...

rand 產生隨機數 及其和clock 的不同

首先我們要對rand srand有個總體的看法 srand初始化隨機種子,rand產生隨機數。定義函式 int rand void 函式說明 因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的,rand 會返回一隨機數值,範圍在0至...

SPSS案例集之隨機數生成及其箱型

背景介紹 今後將陸續推出spss的實戰案例集,藉此熟悉spss軟體功能,並夯實統計學基礎。隨機數生成及其箱型圖案例 1 通過spss生成100個符合標準正態分佈n 0,1 的隨機數 1 設定spss變數 元資料 編碼 並通過excel的sum x 1 整理出一列 1 100 的資料,copy至sps...