⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 random.cpp

📁 包括图、二叉树、链表
💻 CPP
字号:
#include "Random.h"
#include <limits.h>
#include <time.h>
#include <math.h>

int Random::reseed()
//Post:The seed is replaced by a psuedorandom successor
{
	seed=seed*multiplier+add_on;
	return seed;
}

Random::Random(bool pseudo)
{
	/*Post:The values of seed ,add-on, and multiplier are initialized. The seed is initialized randomly only if pseudo==false*/
	if (pseudo)
	{
		seed=1;
	}
	else 
	{
		seed=static_cast<int>(time(NULL)%INT_MAX);
		multiplier=2743;
		add_on=5923;
	}
}

double Random::random_real()
{
	/*Post:A random real number between 0 and 1 is returned*/
	double max=INT_MAX+1.0;
	double temp=reseed();
	if (temp<0)
	{
		temp=temp+max;
	}
	return temp/max;
}

int Random::poisson(double mean)
{
	/*Post:A random integer, reflecting a Poisson distribution with parameter mean, is return.*/
	double limit=exp(-mean);
	double product=random_real();
	int count=0;
	while (product>limit)
	{
		count++;
		product*=random_real();
	}
	return count;
}

⌨️ 快捷键说明

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