📄 random.h
字号:
#ifndef RAND_H#define RAND_H//#include <stdlib.h>#include <math.h>#ifndef M_PI#define M_PI ((double)3.14159265358979323)#endif#ifndef RAND_MAX #define RAND_MAX 2147483647#endif#define RAND16_MAX 65535#ifdef __cplusplusextern "C" {#endif#define STATE_SIZE 97const double randbit = 1.0 /16777216.0;class random_number{ unsigned int ni; unsigned int nj; double u[STATE_SIZE]; double c, cd, cm; unsigned int collapse (int anyint, unsigned int size); void start_random_number(int seed_a, int seed_b); double next_random_number(void);public: random_number(int ); random_number(); double urand(double r = 1.0) { return r*next_random_number(); } double nrand(void){ static int fl_rand = 0; static double x1; static double x2; double r1; double r2; if (!fl_rand) { fl_rand = 1; r1 = next_random_number() + randbit; /* (0,1] */ r2 = next_random_number(); /* [0,1) */ x1 = (double)sqrt(-2 * (double)log(r1)); x2 = (double)(2 * M_PI * r2); return x1 * (double)cos(x2); } else { fl_rand = 0; return x1 * (double)sin(x2); } } double cauchy(double scale=1.0){ return tan(3.14159265*(next_random_number() - 0.5))*scale; // return tan(3.14159*(next_random_number()))*scale; }};#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -