########################################################################
## DESCRIPTION
## A WeBWorK problem that asks students to calculate binomial probabilities. 
## WeBWorK problem written by JoAnne Taormina, <joanne(dot)taormina(at)ncc(dot)edu>
## ENDDESCRIPTION
##
## KEYWORDS('binomial probability', 'discrete')
##
## Author('JoAnne Taormina')
## Institution('Nassau Community College')
########################################################################

DOCUMENT();
loadMacros(
"PGstandard.pl",
"MathObjects.pl",
"PGgraphmacros.pl",
"weightedGrader.pl",
);
install_weighted_grader();

# make sure we're in the context we want
Context("Numeric");

#random probability of success
$prob_success_1 = random(.30, .70, .01);

#random number of trials
$trials = random(8, 12, 1);

#random number of successes
$successes = random(4, 7, 1);

#answer to question 1
$combos = C($trials,$successes);
$ans_1_1 = $combos * ($prob_success_1**$successes);
$ans_1 = $ans_1_1 * ((1-$prob_success_1)**($trials-$successes));

$prob_success_percent = $prob_success_1 * 100; 

# round $ans_1 to 4 decimal places
$ans_1 = int(10000*$ans_1+.5*($ans_1 <=> 0))/10000;

$die_rolls = random(8, 12, 1);
$die_successes=random(4, 6, 1);
$die_num =  random(1, 6, 1);

$ans_2 = C($die_rolls,$die_successes)*((1/6)**$die_successes)*(1-(1/6))**($die_rolls-$die_successes);

# round $ans_2 to 4 decimal places
$ans_2 = int(10000*$ans_2+.5*($ans_2 <=> 0))/10000;

#Joe probability of burned dinner
$prob_success_dinner = random(.50, .70, .01);

#random number of dinners
$dinners = random(5, 10, 1);

#random number of burnt dinners
$dinners_burned_a = random(1, 4, 1);

#answer to question 3
$ans_3= C($dinners, $dinners_burned_a)*($prob_success_dinner**$dinners_burned_a)*(1-$prob_success_dinner)**($dinners-$dinners_burned_a);

# round $ans_3 to 4 decimal places
$ans_3 = int(10000*$ans_3+.5*($ans_3 <=> 0))/10000;

#at least
$dinners_burned_b = $dinners - 2;

#answer to question 4
for($i = $dinners_burned_b; $i<=$dinners; $i++)
{
  $ans_4 += C($dinners, $i)*($prob_success_dinner**$i)*(1-$prob_success_dinner)**($dinners-$i);
}

# round $ans_4 to 4 decimal places
$ans_4 = int(10000*$ans_4+.5*($ans_4 <=> 0))/10000;

#less than
$dinners_burned_c = 3;

#answer to question 5
for($i = 0; $i<$dinners_burned_c; $i++)
{
  $ans_5 += C($dinners, $i)*($prob_success_dinner**$i)*(1-$prob_success_dinner)**($dinners-$i);
}

# round $ans_5 to 4 decimal places
$ans_5 = int(10000*$ans_5+.5*($ans_5 <=> 0))/10000;

$prob_success_dinner = $prob_success_dinner * 100;

$ans_1 = Compute($ans_1);
$ans_2 = Compute($ans_2);
$ans_3 = Compute($ans_3);
$ans_4 = Compute($ans_4);
$ans_5 = Compute($ans_5);

TEXT(beginproblem());
Context()->texStrings;
BEGIN_TEXT
1.  Suppose the probability of success is \( p = $prob_success_percent %\).  What is the probability of \( $successes \) successes in \( $trials \) trials?  $BITALIC Express your answer as a decimal rounded to 4 decimal places after the decimal point.$EITALIC 
$BR $BR
\{ ans_rule(5) \}
$BR $BR
2.  A fair die is rolled \( $die_rolls \) times.  What is the probability of rolling a \( $die_num \) on the die \( $die_successes \) times?  $BITALIC Express your answer as a decimal rounded to 4 decimal places after the decimal point. $EITALIC
$BR $BR
\{ ans_rule(5) \}
$BR $BR
3.  Joe is new to cooking.   The probability that Joe burns dinner is \( $prob_success_dinner %\).  
$BR $BR
(a) What is the probability that in the next \( $dinners \) dinners Joe prepares, \( $dinners_burned_a \) of them will burn? $BITALIC Express your answer as a decimal rounded to 4 decimal places after the decimal point. $EITALIC
$BR $BR
\{ ans_rule(5) \}
$BR $BR
(b) What is the probability that in the next \( $dinners \) dinners Joe prepares, at least \( $dinners_burned_b \) of them will burn? $BITALIC Express your answer as a decimal rounded to 4 decimal places after the decimal point. $EITALIC
$BR $BR
\{ ans_rule(5) \}
$BR $BR
(c) What is the probability that in the next \( $dinners \) dinners Joe prepares, less than \( $dinners_burned_c \) of them will burn? $BITALIC Express your answer as a decimal rounded to 4 decimal places after the decimal point. $EITALIC
$BR $BR
\{ ans_rule(5) \}
$BR $BR

$ECENTER
END_TEXT


Context("Numeric");
Context()->flags->set(
  tolerance=>0.00001,
  tolType=>"absolute"
);

WEIGHTED_ANS($ans_1->cmp(),10);
WEIGHTED_ANS($ans_2->cmp(),15);
WEIGHTED_ANS($ans_3->cmp(),15);
WEIGHTED_ANS($ans_4->cmp(),30);
WEIGHTED_ANS($ans_5->cmp(),30);

ENDDOCUMENT();