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 + -
显示快捷键?