How do i figure out a total number of possible events based on percentages of occurrences? I am trying to figure out what are the average number a rolls it would take to earn a certian number of points.
The problem:
You have a 1350 points you can earn.
You are rolling two dice.

33% Chance for either die to land on 6.
3% chance for both to land on 6.
64% for any other combination.

No 6 = 1 point
Only one 6 = 5 points
Both 6s = 15 points
About how many rolls would it take to earn 1350 points?
I am not even sure how to set this up.
Any help would be awesome!
 A: You should compute the expected score per roll.  You have $33\%$ chance of scoring $5$, so that contributes $0.33\cdot 5=1.65$ points per roll.  Add in the other two results and you get the total expected number of points per roll.  Divide into $1350$ and you are there.   It is not exact, but for a large number of rolls is rather close.
A: #include <iostream>
using namespace std;
int main() 
{
    const int SIZE=1350+15; //also the maxinum of the points plus one
    double * possibility=new double[SIZE];
    double * average_steps=new double[SIZE];
    for(int i=1;i<SIZE;i++)
    {
        possibility[i]=0.0;
        average_steps[i]=0.0;
    }
    possibility[0]=1.0;
    average_steps[0]=0.0;
    for(int i=0;i<SIZE-15;i++)
    {
        possibility[i+1]+=0.64 * possibility[i];
        average_steps[i+1]+=0.64 * (average_steps[i] + possibility[i]);
        possibility[i+5]+=0.33 * possibility[i];
        average_steps[i+5]+=0.33 * (average_steps[i] + possibility[i]);
        possibility[i+15]+=0.03 * possibility[i];
        average_steps[i+15]+=0.03 * (average_steps[i] + possibility[i]);
    }
    double sum=0.0;
    for(int i=SIZE-15;i<SIZE;i++)
        sum+=average_steps[i];
    cout<<sum;
    delete [] possibility;
    delete [] average_steps;
    return 0;
}
I made this program in C++, and ran it, and the output is:
493.56
It will take a few steps to prove the program is correct. ( For convenience, I will use p[i] and a[i] instead of possibility[i] and average_steps[i], and s[i] refers to actual average steps cost to get to i points )
At the beginning of the program, all the elements of the two arrays are initialized to 0 except p[0] ( it is 1.0 ), which means I haven't rolled any dice yet.
Then during the second loop in the program, i increases from 0 to 1349. And when i=n, p[n] means the possibility of going through n points before I get to 1350 points. s[n] is the average number of steps when I get to n points, and a[n] = s[n] * p[n].  
If p[n-15], p[n-5], p[n-1], a[n-15], a[n-5] and a[n-1] have been correctly calculated ( if they doesn't exist, think of them as correctly calculated ), p[n] and a[n] will be correctly calculated. That is because:
The possibility of going through a points equals the sum of all the possibility that goes into a point, so p[n] = 0.03*p[n-15] + 0.33*p[n-5] + 0.64*p[n-1].
The average number of steps equals weighted sum divided by total possibility, so s[n] = ((s[n-15]+1) * (p[n-15]*0.03) + (s[n-5]+1) * (p[n-5]*0.33) + (s[n-1]+1) * (p[n-1]*0.64)) / p[n], and a[n] = (a[n-15]+p[n-15])*0.03 + (a[n-5]+p[n-5])*0.33 + (a[n-1]+p[n-1])*0.64 ( remember that a[n] = s[n] × p[n] ).
Since p[0] and a[0] are correctly calculated, all 0~1364 elements are correctly calculated, then add the average steps from 1350 to 1364, and I get the answer.
