This program is by Jean-Marc Baillard and is used here by permission.
This program is supplied without representation or warranty of any kind. Jean-Marc Baillard and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.
-If you throw 2 identical dices having 6 sides ( numbered from 1 to 6 ) , there are 5 combinations giving the total 6:
1 + 5 = 2 + 4 = 3 + 3 = 4 + 2 = 5 + 1.
-The following program calculates how many dice combinations D( n ,
s , t ) result in a given total t
when you throw n dices ( n > 1 ) having s sides ( numbered
1 ; 2 ; ...... ; s )
Data Registers: All registers are cleared by this program ( line 02 ), but only R00 thru Rnn are actually used
Flag: none
Subroutine: none
STACK | INPUTS | OUTPUTS |
Z | n | / |
Y | s | / |
X | t | D( n , s , t ) |
-As usual, synthetic registers M , N , O , P can be replaced by any
unused standard registers ( Rmm with m > n ).
01 LBL "DST"
02 CLRG
03 X<>Y
04 STO N
05 X<> Z
06 STO M
07 -
08 .1
09 %
10 STO O
11 LBL 01
12 RCL M
13 STO P
14 DSE P
15 RCL O
16 INT
17 RCL N
18 /
19 FRC
20 X#0?
21 GTO 02
22 LASTX
23 ENTER^
24 R^
25 -
26 RCL 00
27 ST* Y
28 -
29 X<>Y
30 X#0?
31 /
32 X=0?
33 SIGN
34 STO 00
35 ST+ IND M
36 LBL 02
37 RCL P
38 SIGN
39 ST+ L
40 RCL IND L
41 ST+ IND P
42 DSE P
43 GTO 02
44 ISG O
45 GTO 01
46 RCL 01
47 CLA
48 END
( 77 bytes / SIZE n+1 )
Example: How many combinations result in a total of 41 if you throw 7 dices having 12 sides ( numbered from 1 to 12 ) ?
7 ENTER^
12 ENTER^
41 XEQ "DST" yields
1,369,368 in X-register and in R01 ( execution
time = 67 seconds )
Notes: 1- This routine requires: n < =
t < = n.s ( otherwise the answer is of course
0 but "DST" may give a wrong result )
2- The propertie
D( n , s , t ) = D( n , s , n.s + n - t ) could be used
to reduce execution time when n.s + n - t <
t
( execution time is approximately proportional to n.t )
3- If you want to know the probability
rather than the number of combinations,
add RCL N RCL M
Y^X / after
line 46.
4- This program doesn't work if t - n > 999
. If you want to overcome this limitation:
replace
line 44
by DSE O
-------
lines 15-16 by RCL Q RCL
O -
------------
08 to 10 by 1 + STO O STO Q
Reference: Issues # 29 and # 41 of "48SXTANT" ( a Dutch magazine edited by Robert Pulluard ) ( in French ).
Go back to the HP-41 software library
Go back to the general software library
Go
back to the main exhibit hall