random.c
来自「可配置的vga显示控制器」· C语言 代码 · 共 33 行
C
33 行
/* linear congruential generator. Generator x[n+1] = a * x[n] mod m */#define RAND_INT(l,h) (((int)(random() * ((double)(h)-(l)+1))) + (l))int random (void); /* return the next random number x: 0 <= x < 1*/void rand_seed (unsigned int); /* seed the generator */static unsigned int SEED = 93186752;int random () {/* The following parameters are recommended settings based on research uncomment the one you want. */ static unsigned int a = 1588635695, m = 4294967291U, q = 2, r = 1117695901;/* static unsigned int a = 1223106847, m = 4294967291U, q = 3, r = 625646750;*//* static unsigned int a = 279470273, m = 4294967291U, q = 15, r = 102913196;*//* static unsigned int a = 1583458089, m = 2147483647, q = 1, r = 564025558; *//* static unsigned int a = 784588716, m = 2147483647, q = 2, r = 578306215; *//* static unsigned int a = 16807, m = 2147483647, q = 127773, r = 2836; *//* static unsigned int a = 950706376, m = 2147483647, q = 2, r = 246070895; */ SEED = a*(SEED % q) - r*(SEED / q); return SEED; }void rand_seed (unsigned int init) {if (init != 0) SEED = init;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?