We help IT Professionals succeed at work.

# find all possible sequence value from a matrix

on
Medium Priority
200 Views
hi,

| a     |   b     |     c     |
---------------------------------|
a| 0.5  | 0.25   | 0.25    | =1
---------------------------------|
b| 0.375| 0.125 | 0.375  | =1
---------------------------------|
c| 0.125| 0.675 | 0.375  | =1
-----------------------------------

I need calculate the probability from a above matrix

for example, if I want to find a sequence of aab, it should calculate like:
a-->a-->b = 0.5 * 0.25 = 0.125

could someone give me some codes to find "all possible paths" for any given sequence? for example for sequence of 3, there is 3^3=27 possible paths (aaa,aab,aac, aba....ccc.etc). I want to find the probability of all 27 paths.
Comment
Watch Question

## View Solution Only

Top Expert 2006
Commented:
The following code,

double[,] matrix = new double[,] { { 0.5, 0.25, 0.25 }, { 0.375, 0.125, 0.375 }, { 0.125, 0.675, 0.375 } };
System.Diagnostics.Debug.Assert(matrix.GetLength(0) == matrix.GetLength(1));

int sequences = 3;

for (int i = 0; i < (int)Math.Pow(matrix.GetLength(0), sequences); i++)
{
double p = 1;

Console.Write((char)('a' + ((i / (int)Math.Pow(matrix.GetLength(0), 0)) % matrix.GetLength(0))));

for (int j = 1; j < sequences; j++)
{
int a = (i / (int)Math.Pow(matrix.GetLength(0), j - 1)) % matrix.GetLength(0);
int b = (i / (int)Math.Pow(matrix.GetLength(0), j)) % matrix.GetLength(0);
p *= matrix[a, b];

Console.Write("->" + (char)('a' + b));
}

Console.WriteLine(" " + p);
}

produces the output ("a->a->b 0.125"),

a->a->a 0.25
b->a->a 0.1875
c->a->a 0.0625
a->b->a 0.09375
b->b->a 0.046875
c->b->a 0.253125
a->c->a 0.03125
b->c->a 0.046875
c->c->a 0.046875
a->a->b 0.125
b->a->b 0.09375
c->a->b 0.03125
a->b->b 0.03125
b->b->b 0.015625
c->b->b 0.084375
a->c->b 0.16875
b->c->b 0.253125
c->c->b 0.253125
a->a->c 0.125
b->a->c 0.09375
c->a->c 0.03125
a->b->c 0.09375
b->b->c 0.046875
c->b->c 0.253125
a->c->c 0.09375
b->c->c 0.140625
c->c->c 0.140625

Not the solution you were looking for? Getting a personalized solution is easy.

##### Thanks for using Experts Exchange.

• View three pieces of content (articles, solutions, posts, and videos)
• Ask the experts questions (counted toward content limit)
• Customize your dashboard and profile