Changeset 92:5d4decd1b870 in lemon-1.0
- Timestamp:
- 03/14/08 17:57:49 (17 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/random.h
r68 r92 804 804 } 805 805 806 /// Poisson distribution 807 808 /// This function generates a Poisson distribution random number with 809 /// parameter \c lambda. 810 /// 811 /// The probability mass function of this distribusion is 812 /// \f[ \frac{e^{-\lambda}\lambda^k}{k!} \f] 813 /// \note The algorithm is taken from the book of Donald E. Knuth titled 814 /// ''Seminumerical Algorithms'' (1969). Its running time is linear in the 815 /// return value. 816 817 int poisson(double lambda) 818 { 819 const double l = std::exp(-lambda); 820 int k=0; 821 double p = 1.0; 822 do { 823 k++; 824 p*=real<double>(); 825 } while (p>=l); 826 return k-1; 827 } 828 806 829 ///@} 807 830 -
test/random_test.cc
r39 r92 34 34 //Does gamma work with integer k? 35 35 a=lemon::rnd.gamma(4.0,0); 36 a=lemon::rnd.poisson(.5); 36 37 }
Note: See TracChangeset
for help on using the changeset viewer.