My Math Forum Dice probability with multi-colored dice pips

 Algebra Pre-Algebra and Basic Algebra Math Forum

 May 28th, 2008, 02:21 PM #1 Newbie   Joined: Mar 2008 Posts: 15 Thanks: 0 Dice probability with multi-colored dice pips Mr. CRGrathouse you got me thinking about dice mechanics after discussing a six range color table a while back. Well I think I've come up with a solution to eliminate the table and just use custom made dice. A 10-sided dice with a range of pips 1-3 and of different colors (black, red, and green) just like Kismet Dice have. http://en.wikipedia.org/wiki/Image:Kismet_Die_Faces.png The 10-sided dice would be as follows: 1: * Green 2: * Green 3: * Green 4: * Green 5: * Red 6: * Black 7: ** Green 8: ** Red 9: ** Black 10: *** Black Six ones (*) pips Three twos (**) pips One three (***) pip The meachincs are dice pool based. You roll your dice pool and keep the two best dice and add them together. The number result range is 1-6 (color combos shift the results either higher or lower by one). A sword skill pool just rolling two dice would be terrible, and a sword skill pool of six dice would be good. Two green dice result in a -1 quality of result or -1QR Two red dice result in a +1 quality of result or +1 QR Two black or a mix of colors results in no shift to the result of adding the two dice together. The mathematics of only taking only the two highest dice, and the color variations are beyond me. But it does seem to be a sound method. Here is the universal table I'm trying to eliminate by using special dice. I'm not trying to replicate the percentages exactly, just the general idea behind it of haveing a range of six results that scale up/down. http://documents.scribd.com/docs/1lu...dn763w2u3p.pdf Thanks for your time.
 May 28th, 2008, 03:04 PM #2 Senior Member   Joined: Oct 2007 From: Chicago Posts: 1,701 Thanks: 3 I'm not quite understanding this, but it seems interesting! I understand the numbering scheme, but why do we want the dice designed that way?
 May 28th, 2008, 04:07 PM #3 Newbie   Joined: Mar 2008 Posts: 15 Thanks: 0 My goal is a range from 1-6. Obviously a six sided dice does that, but I want it to be harder to get high numbers. A straight forward example to help illustrate the flow is a combat matrix. QR1 just means Quality of result 1. So if the dice add up to 3, that would be a quality of result 3 or QR3. http://documents.scribd.com/docs/2gx...606o73xbi7.pdf Many dice pool mechanics in RPGs are binary. Meaning when you roll the dice it's either a success or failure. The game might have you roll six sided dice, where 1-3 are a failure and 4-6 are a success. Almost like flipping a coin. As your skill increases, you roll more dice.
 May 28th, 2008, 09:00 PM #4 Senior Member   Joined: Oct 2007 From: Chicago Posts: 1,701 Thanks: 3 Ah! I see. Now it makes sense.
 May 29th, 2008, 11:19 AM #5 Global Moderator     Joined: Nov 2006 From: UTC -5 Posts: 16,046 Thanks: 938 Math Focus: Number theory, computational mathematics, combinatorics, FOM, symbolic logic, TCS, algorithms Good news: I wrote a program to find the probabilities! Bad news: I've been too lazy so far to actually write the output part of the program (a tedious, if not difficult part). Until then I can only give simple results from it. If anyone's interested, here's my code. It's C#, but it can be easily converted into C, C++, or Java. Code:  public struct Pr { long no2; // B3, no 2s long one2; // B3, one 2 long two2; // B3, two 2s long twoB3; // two B3s long[, , , ,] main; // No B3s. G1s are implicit. public override string ToString() { return string.Format("Chance of 6: {0:0.00%}", (float)twoB3 / (float)total()); } public long total() { long sum = 0; for (int r1 = 0; r1 < 3; ++r1) for (int b1 = 0; b1 < 3; ++b1) for (int g2 = 0; g2 < 3; ++g2) for (int r2 = 0; r2 < 3; ++r2) for (int b2 = 0; b2 < 3; ++b2) sum += main[r1, b1, g2, r2, b2]; return sum + no2 + one2 + two2 + twoB3; } public static Pr blank() { Pr p; p.no2 = 0; p.one2 = 0; p.two2 = 0; p.twoB3 = 0; p.main = new long[3, 3, 3, 3, 3]; for (int r1 = 0; r1 < 3; ++r1) for (int b1 = 0; b1 < 3; ++b1) for (int g2 = 0; g2 < 3; ++g2) for (int r2 = 0; r2 < 3; ++r2) for (int b2 = 0; b2 < 3; ++b2) p.main[r1,b1,g2,r2,b2] = 0; return p; } public static Pr setup() { Pr p = Pr.blank(); p.main[0, 0, 0, 0, 0] = 1; return p; } public Pr iterate() { Pr p = Pr.blank(); p.twoB3 = twoB3 * 10 + no2 + one2 + two2; p.two2 = two2 * 9 + one2 * 3; p.one2 = one2 * 6 + no2 * 3; p.no2 = no2 * 6; for (int r1 = 0; r1 < 3; ++r1) for (int b1 = 0; b1 < 3; ++b1) for (int g2 = 0; g2 < 3; ++g2) for (int r2 = 0; r2 < 3; ++r2) for (int b2 = 0; b2 < 3; ++b2) p.main[ss(r1), b1, g2, r2, b2] += main[r1, b1, g2, r2, b2]; for (int r1 = 0; r1 < 3; ++r1) for (int b1 = 0; b1 < 3; ++b1) for (int g2 = 0; g2 < 3; ++g2) for (int r2 = 0; r2 < 3; ++r2) for (int b2 = 0; b2 < 3; ++b2) p.main[r1, ss(b1), g2, r2, b2] += main[r1, b1, g2, r2, b2]; for (int r1 = 0; r1 < 3; ++r1) for (int b1 = 0; b1 < 3; ++b1) for (int g2 = 0; g2 < 3; ++g2) for (int r2 = 0; r2 < 3; ++r2) for (int b2 = 0; b2 < 3; ++b2) p.main[r1, b1, ss(g2), r2, b2] += main[r1, b1, g2, r2, b2]; for (int r1 = 0; r1 < 3; ++r1) for (int b1 = 0; b1 < 3; ++b1) for (int g2 = 0; g2 < 3; ++g2) for (int r2 = 0; r2 < 3; ++r2) for (int b2 = 0; b2 < 3; ++b2) p.main[r1, b1, g2, ss(r2), b2] += main[r1, b1, g2, r2, b2]; for (int r1 = 0; r1 < 3; ++r1) for (int b1 = 0; b1 < 3; ++b1) for (int g2 = 0; g2 < 3; ++g2) for (int r2 = 0; r2 < 3; ++r2) for (int b2 = 0; b2 < 3; ++b2) p.main[r1, b1, g2, r2, ss(b2)] += main[r1, b1, g2, r2, b2]; for (int r1 = 0; r1 < 3; ++r1) for (int b1 = 0; b1 < 3; ++b1) for (int g2 = 0; g2 < 3; ++g2) for (int r2 = 0; r2 < 3; ++r2) for (int b2 = 0; b2 < 3; ++b2) p.main[r1, b1, g2, r2, b2] += 4 * main[r1, b1, g2, r2, b2]; for (int r1 = 0; r1 < 3; ++r1) for (int b1 = 0; b1 < 3; ++b1) for (int g2 = 0; g2 < 3; ++g2) for (int r2 = 0; r2 < 3; ++r2) for (int b2 = 0; b2 < 3; ++b2) { int twos = g2 + r2 + b2; if (twos == 0) p.no2 += main[r1, b1, g2, r2, b2]; else if (twos == 1) p.one2 += main[r1, b1, g2, r2, b2]; else p.two2 += main[r1, b1, g2, r2, b2]; } return p; } // "Saturation successor" public static int ss(int n){ if (n > 1) return 2; return n + 1; } }
May 29th, 2008, 09:07 PM   #6
Newbie

Joined: Mar 2008

Posts: 15
Thanks: 0

Quote:
 Originally Posted by CRGreathouse Good news: I wrote a program to find the probabilities!

Wow...thanks for doing that work!

 May 30th, 2008, 04:50 AM #7 Global Moderator     Joined: Nov 2006 From: UTC -5 Posts: 16,046 Thanks: 938 Math Focus: Number theory, computational mathematics, combinatorics, FOM, symbolic logic, TCS, algorithms The 'easy' results are: Chance of six, 2 dice: 1.00% Chance of six, 3 dice: 2.80% Chance of six, 4 dice: 5.23% Chance of six, 5 dice: 8.15% Chance of six, 6 dice: 11.4% Chance of six, 7 dice: 15.0% Chance of six, 8 dice: 18.7% Chance of five, 2 dice: 7.00% Chance of five, 3 dice: 16.00% Chance of five, 4 dice: 24.69% Chance of five, 5 dice: 32.13% Chance of five, 6 dice: 38.03% Chance of five, 7 dice: 42.44% Chance of five, 8 dice: 45.52% Chance of one, 2 dice: 16.0% Chance of one, 3 dice: 6.40% Chance of one, 4 dice: 2.56% Chance of one, 5 dice: 1.02% Chance of one, 6 dice: 0.41% Chance of one, 7 dice: 0.16% Chance of one, 8 dice: 0.07%
May 30th, 2008, 12:43 PM   #8
Newbie

Joined: Mar 2008

Posts: 15
Thanks: 0

Quote:
 Originally Posted by CRGreathouse The 'easy' results are:

Thank you.

Intresting. The "5" results are higher than I thought. One less "**" black pip and one more "*" red is might be needed for smoother distribution.

Any thoughts on the whole color ratio aspect?

 May 30th, 2008, 12:57 PM #9 Global Moderator     Joined: Nov 2006 From: UTC -5 Posts: 16,046 Thanks: 938 Math Focus: Number theory, computational mathematics, combinatorics, FOM, symbolic logic, TCS, algorithms Do keep in mind that I went up to 8 where you said that the normal range was 2-6. The fives aren't so extreme up to that point. I can't comment on the color ratio without knowing your goals better.
May 30th, 2008, 02:45 PM   #10
Newbie

Joined: Mar 2008

Posts: 15
Thanks: 0

Quote:
 Originally Posted by CRGreathouse I can't comment on the color ratio without knowing your goals better.

A spread between QR5 and QR6 should have a Goldie Locks ratio: not too much, not too little, but just right. The same for the spread between QR1 and QR2.

 Tags dice, multicolored, pips, probability

,

,

,

# probability colored dice

Click on a term to search for related topics.
 Thread Tools Display Modes Linear Mode

 Similar Threads Thread Thread Starter Forum Replies Last Post marko.games Advanced Statistics 2 November 12th, 2013 01:18 PM panky Probability and Statistics 1 November 11th, 2012 03:33 AM drunkd Algebra 2 July 31st, 2012 12:09 PM kankabono Algebra 3 November 27th, 2009 08:23 PM drunkd Advanced Statistics 0 December 31st, 1969 04:00 PM

 Contact - Home - Forums - Cryptocurrency Forum - Top