作者Ross0916 ()
看板NTUEE_VAL
標題[情報] 有關亂數
時間Sat Jun 19 16:29:42 2010
由於系統提供的 rand() 不夠亂
我去找了一個號稱很亂 看起來很厲害的亂數 library
使用如下:
1. 請到這裡:
http://www.agner.org/random/
抓第二個 "Uniform random number generators as binary libraries"
也就是 randoma.zip
2. 抓下來解開有一大堆檔,其實只需要三個檔
randoma.h
randomc.h
randomaelf32.a
把這三個檔丟到 /pathg 裡頭
3. 改 pathgame.c 如下:
- 最前面加上
include "randoma.h"
- randomize() 中
最後一行本來是
srand(i0);
改成:
SFMTgenRandomInit(i0, 1);
- random_restrict_sync() 裡
有用到 rand() 的兩處要改
分別改成這樣:
k = SFMTgenIRandomX(0, (PX_AVAILABLE_COUNT[INDEX_ENVR]+PX_AVAILABLE_COUNT[INDEX_SPEC]) - 1);
k = SFMTgenIRandomX(0, PX_AVAILABLE_COUNT[INDEX_MODL] - 1);
其中 SFMTgenIRandomX 的第一二個參數就是亂數的下限、上限
4. 改 pathgmake 中的 pathg 那段如下
pathg : pathgame.o pathgame_strategy.o redlib.a randomaelf32.a;
gcc ${FLAG} -o pathg pathgame.o pathgame_strategy.o redlib.a randomaelf32.a
5. make -f pathgmake
這樣應該就可以用啦!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.25.140