Sort of OT: Dice odds « Next Oldest | Next Newest »

 ▼ Dave Britten Member Posts: 247 Threads: 26 Joined: Oct 2007 09-12-2011, 10:08 AM I'm already familiar with calculating the odds of getting a certain number of specific individual results when rolling an arbitrary number of dice (simple binomial distribution). But a fair amount of Google searching and working out numbers by hand hasn't led me to a general formula for calculating the odds of getting a certain total when rolling an arbitrary number of dice. (e.g. What are the odds of rolling a total of 17 or greater using four standard 6-sided dice?) This looks like some form of binomial expansion, but I'm drawing a blank putting it all together. And I can always post a 15c implementation of the calculation, since that's the hot topic at the moment. ;) ▼ M. Joury Posting Freak Posts: 756 Threads: 31 Joined: Aug 2010 09-12-2011, 10:24 AM Try this page: Chance of total with 'x' dice From the above page: This section endeavors to answer the frequently asked question on the probability for any given total over the throw of multiple dice. ... My method was a recursive computer program. No, I don't know of an easy non-recursive formula. Hope this helps. Cheers, -Marwan ▼ Dave Britten Member Posts: 247 Threads: 26 Joined: Oct 2007 09-12-2011, 11:34 AM I was afraid I might have to resort to that. Now, to really complicate things, I also want to be able to do this with non-standard dice. For example, a 6-sided die with faces reading 0, 0, 0, 1, 1, 2, or something like that, and maybe even mixtures of different dice. I'll have to see how far I can take this on the 15c LE when it shows up, though honestly I think this would be easiest to implement with SQL and liberal use of cross joins. ▼ M. Joury Posting Freak Posts: 756 Threads: 31 Joined: Aug 2010 09-12-2011, 11:48 AM SQL? If you end up going that route I would love to see how you do it. Although I would not consider myself a SQL programmer (C, C++, C#) I do program SQL on a regular basis for my job and solving this using SQL would never (never did) even occur to me! Cheers, -Marwan ▼ Dave Britten Member Posts: 247 Threads: 26 Joined: Oct 2007 09-12-2011, 12:44 PM Sure, here's what I slopped together for SQL Server (I'm assuming you have access to that, with C# background). The memory/CPU usage gets really out of hand with a large number of dice. Doing 7 six-sided dice takes about 10 seconds on an 8-core server with 32 GB RAM. But you can mix and match types of dice, and do non-standard dice. You'll also need to have my string split function in the current database. ▼ M. Joury Posting Freak Posts: 756 Threads: 31 Joined: Aug 2010 09-12-2011, 12:46 PM Thanks Dave! Egan Ford Posting Freak Posts: 1,619 Threads: 147 Joined: May 2006 09-12-2011, 12:22 PM This smells of Project Euler. I'm afraid you are going to have to tough it out like the rest of us have. :-) ▼ Dave Britten Member Posts: 247 Threads: 26 Joined: Oct 2007 09-12-2011, 12:32 PM Ha ha, I was wondering if there might have been one on there like that. I should check my Project Euler source code and see if I solved it and forgot about it. Actually, I'm more interested in game play and/or design at the moment, and figuring these things out mathematically could come in handy. Thomas Klemm Senior Member Posts: 735 Threads: 34 Joined: May 2007 09-12-2011, 03:34 PM Quote: What are the odds of rolling a total of 17 or greater using four standard 6-sided dice? There's a function glob in Perl that does the cross joins. For example, this produces nine strings, one for each pairing of fruits and colors: @many = glob "{apple,tomato,cherry}={green,yellow,red}"; That's the program I came up with: ```#!/usr/bin/perl use strict; use warnings; my \$dice = '+{1,2,3,4,5,6}'; my \$n = 4; my %seen; for my \$roll (glob \$dice x \$n) { my \$sum = eval \$roll; \$seen{\$sum}++; }; my \$total = 0; for my \$value (sort { \$a <=> \$b } keys %seen) { printf <

 Possibly Related Threads... Thread Author Replies Views Last Post Rearanging the "Fixed" sort order of Prime's Apps icons Joe Horn 3 1,191 10-02-2013, 10:24 AM Last Post: Han HP-71B Dice Games Howard Owen 6 1,615 04-28-2011, 04:33 PM Last Post: Howard Owen Symbolic math with the 35s (well.. sort of) Dieter 4 1,216 08-28-2010, 01:35 AM Last Post: Karl Schneider Why are Serial Ports so Annoying? 49G But sort of Off Topic bill platt 5 1,251 03-02-2010, 11:50 AM Last Post: Ron Ross Random Number Generation Challenge (sort of) Namir 9 1,931 02-15-2010, 08:05 AM Last Post: Bart (UK) OT sort-of: Reverse Engineering Calculator OS Chuck 4 1,118 10-14-2009, 09:49 AM Last Post: Tom Mathes Challenge: Open-ended Dice on the HP-41 Geir Isene 2 906 09-06-2009, 03:38 PM Last Post: hugh steers HP 35s Bubble Sort Elliott W Jackson 1 670 02-14-2009, 04:36 AM Last Post: Marcus von Cube, Germany HP 35s Gnome Sort Elliott W Jackson 0 587 02-13-2009, 10:52 PM Last Post: Elliott W Jackson Voyager series odds and ends DanE 6 1,439 10-24-2007, 12:25 AM Last Post: DanE

Forum Jump: