My Math Forum  

Go Back   My Math Forum > High School Math Forum > Algebra

Algebra Pre-Algebra and Basic Algebra Math Forum


Reply
 
LinkBack Thread Tools Display Modes
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.
Brimstone is offline  
 
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?
cknapp is offline  
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.
Brimstone is offline  
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.
cknapp is offline  
May 29th, 2008, 11:19 AM   #5
Global Moderator
 
CRGreathouse's Avatar
 
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;
		}
	}
CRGreathouse is offline  
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!
Brimstone is offline  
May 30th, 2008, 04:50 AM   #7
Global Moderator
 
CRGreathouse's Avatar
 
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%
CRGreathouse is offline  
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?
Brimstone is offline  
May 30th, 2008, 12:57 PM   #9
Global Moderator
 
CRGreathouse's Avatar
 
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.
CRGreathouse is offline  
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.
Brimstone is offline  
Reply

  My Math Forum > High School Math Forum > Algebra

Tags
dice, multicolored, pips, probability



Search tags for this page
Click on a term to search for related topics.
Thread Tools
Display Modes


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





Copyright © 2018 My Math Forum. All rights reserved.