The Museum of HP Calculators

HP Forum Archive 16

 19BII Program QuestionMessage #1 Posted by Hans van der Drift on 28 Jan 2007, 10:02 p.m. Hello, I would like to ask for some help. I have some general knowledge of the solver and formulas but I am stumped on how (or if) to create a simple dice rolling equation. I am trying to create a solver function that will re-create the following. NUM DICE? = D HIT MIN? = H Number of hits = X So if I needed to recreate the rolling of 48 dice and show how many results are 5 and 6 cumulatively. or 32 dice and how many results are 4, 5 and 6 cumulatively. I saw a post from a guy that has done the on a TI-82. He used this formula. Quote: ClrHome --clear the screen 0->X --the variable x gets reset to 0, x will hold the # of successful hits Input ("Num Dice? ", D) --Prompts for # of dice to roll, stores the value in variable D Input ("Hit Min? ", H) --Prompts for Minimum number needed for a succesful hit, usually 4,5, or 6, and stores in Variable H) For (I,1,D,1) --This is a loop, the Variable I is our incrememted by 1 each time through until it is equal to D, which is the # of dice rolls If ((int (rand*6+1)>=H) --if the randomly generated number of 1-6 is greater than variable H, your minimum hit #, then... X+1->X --X, your hit count variable, gets incremented by 1 END --end the loop Disp X --print out the number of hits Quote: REPLACE THIS TEXT WITH THE QUOTE

 Re: 19BII Program QuestionMessage #2 Posted by Marcus von Cube, Germany on 29 Jan 2007, 4:33 a.m.,in response to message #1 by Hans van der Drift This is a bit tricky but should work: ```HITS=SUM(I:1:DICE:1:MAX(0:SGN(INT(6xRAN#)+2-HMIN))) ``` Replace SUM by the summation sign (Sigma) ```INT(6xRAN#) returns an integer from 0 to 5 +2-HMIN converts it to a posive number if the margin is hit MIN(0:SGN()) returns a 1 if the argument is positive, 0 else ``` The summation sums up the ones that indicate a hit.

 Re: 19BII Program QuestionMessage #3 Posted by Marcus von Cube, Germany on 29 Jan 2007, 4:43 a.m.,in response to message #2 by Marcus von Cube, Germany I just found out about the IF function: ```HITS=SUM(I:1:DICE:1:IF(INT(6xRAN#)+1

 Re: 19BII Program QuestionMessage #4 Posted by Hans van der Drift on 29 Jan 2007, 6:58 p.m.,in response to message #3 by Marcus von Cube, Germany Hi, Yes that works great. I appreciate your help. Hans

Go back to the main exhibit hall