📄 distributions.h
字号:
/* $Id: distributions.h,v 1.8 2005/08/02 19:35:49 jonathan Exp $ * Jonathan Ledlie, Harvard University. * Copyright 2005. All rights reserved. */#ifndef DISTRIBUTIONS_H_#define DISTRIBUTIONS_H_#include <map>#include <vector>#include "randlib.h"#include "math_util.h"using namespace::std;class Distribution {public: Distribution () {} ~Distribution () {} virtual double next () { return 0.;} virtual double getMean () { return 0.;} virtual char getName () {return ' ';}};class ParetoDistribution : public Distribution {private: double scale; double shape;public: ParetoDistribution (double sc, double sh) {this->scale = sc; this->shape = sh;} ~ParetoDistribution () {} double next (); double getMean (); char getName () { return 'p';};};class NormalDistribution : public Distribution {private: double mean; double stddev;public: NormalDistribution (double m, double s) {this->mean = m; this->stddev = s;} ~NormalDistribution () {} double next (); double getMean (); char getName () { return 'n';};};class ZipfDistribution : public Distribution {private: double alpha; int elements; double c; // Normalization constantpublic: ZipfDistribution (double a, int n); ~ZipfDistribution () {} double next (); double getMean (); char getName () { return 'z';}; map<double,double> zipfKeys;};class UniformDistribution : public Distribution {private:public: UniformDistribution () {} ~UniformDistribution () {} double next (); double getMean (); char getName () { return 'u';};};class GnutellaBWDistribution : public Distribution {private:public: GnutellaBWDistribution () {} ~GnutellaBWDistribution () {} double next (); double getMean (); char getName () { return 'g';};};class PoissonDistribution : public Distribution {private: double mean;public: PoissonDistribution (double m) {this->mean = m;} ~PoissonDistribution () {} double next (); double getMean (); char getName () { return 'f';};};class ConstantDistribution : public Distribution {private: double value;public: ConstantDistribution (double c) {this->value = c;} ~ConstantDistribution () {} double next (); double getMean (); char getName () { return 'c';};};class DistributionFactory {public: DistributionFactory () {} ~DistributionFactory () {} Distribution* newDistribution (char *str);};double snorm();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -