random.c
来自「C++编写的机器学习算法 Lemga is a C++ package whi」· C语言 代码 · 共 41 行
C
41 行
#include <assert.h>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <time.h>#include "random.h"void set_seed (unsigned int seed){ if (seed == 0 || seed > RAND_MAX) { /* use time() to set the seed */ time_t t = time(NULL); assert(t > 0); seed = t; } fprintf(stderr, "random seed = %u\n", seed); srand(seed);}REAL randn () { static int saved = 0; static REAL saved_val; REAL rsq, v1, v2, ratio; if (saved) { saved = 0; return saved_val; } do { v1 = 2*randu()-1; v2 = 2*randu()-1; rsq = v1*v1 + v2*v2; } while (rsq >= 1 || rsq == 0); ratio = sqrt(-2 * log(rsq)/rsq); saved_val = v1 * ratio; saved = 1; return v2 * ratio;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?