random.c

来自「一遗传算法的例子源程序」· C语言 代码 · 共 32 行

C
32
字号
#include <time.h>
#include "lithos.h"

static unsigned data[31];
static int current;
static int last;

void initRandom()
{
	int i;
	data[0] = time(0);
	for (i = 1; i < 31; i++)
		data[i] = (data[i - 1] * 1103515245) + 12345;
	current = 3;
	last = 0;
	for (i = 0; i < 1000; i++)
		random();
}

int random()
{
	current = (current + 1) % 31;
	last = (last + 1) % 31;
	data[current] += data[last];
	return data[current] >> 1;
}

int choose(int a, int b)
{
	return (random() % (a + b)) < a;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?