How to sample from an exponential distribution using rejection sampling in PHP

General Tech Bugs & Fixes 2 years ago

0 1 0 0 0 tuteeHUB earn credit +10 pts

5 Star Rating 1 Rating

Posted on 16 Aug 2022, this text provides information on Bugs & Fixes related to General Tech. Please note that while accuracy is prioritized, the data presented might not be entirely correct or up-to-date. This information is offered for general knowledge and informational purposes only, and should not be considered as a substitute for professional advice.

Take Quiz To Earn Credits!

Turn Your Knowledge into Earnings.

tuteehub_quiz

Answers (1)

Post Answer
profilepic.png
manpreet Tuteehub forum best answer Best Answer 2 years ago

I wrote PHP-code that gets me samples of a (truncated) exponential distribution between 0 and 1 with mean 1 (XExp(1)X∼Exp(1)).

I'm trying to use acceptance-rejection method: I don't know if I get it right, but basically I use one sample of a Uniform(0,1)Uniform(0,1) distribution to get the x-axis and another to get the y-axis and then check if the y-axis sample is below (valid sample) or above (reject sample) the exponential distribution function curve.

How do I get it to give me samples of a generic XExp(λ)X∼Exp(λ)?

$num_samples=1000;
$samples=array();$sample=0;$count=0;$counts=0;
$time=microtime(true);
for($i=0;$i<$num_samples;$i++){
    while (exp(-($sample = mt_rand(0,PHP_INT_MAX)*(1/PHP_INT_MAX)))
                <
                mt_rand(0,PHP_INT_MAX)*(1/PHP_INT_MAX)){
        $count++;
    }
    $samples[] = $sample;
    $counts+=$count;
    $count=0;
}
echo "s

No matter what stage you're at in your education or career, TuteeHub will help you reach the next level that you're aiming for. Simply,Choose a subject/topic and get started in self-paced practice sessions to improve your knowledge and scores.