Solved

find all possible sequence value from a matrix

Posted on 2006-10-30
1
174 Views
Last Modified: 2012-05-05
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.
0
Comment
Question by:rmtogether
1 Comment
 
LVL 11

Accepted Solution

by:
Expert1701 earned 500 total points
ID: 17838934
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);
  }

  Console.ReadLine();

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
0

Featured Post

ScreenConnect 6.0 Free Trial

Want empowering updates? You're in the right place! Discover new features in ScreenConnect 6.0, based on partner feedback, to keep you business operating smoothly and optimally (the way it should be). Explore all of the extras and enhancements for yourself!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
C# HTTP GET method sample code 3 57
Coding C# in Linux 8 69
Video Player 2017 5 24
Need to start a web service from Visual Studio 2015 Pro 2 24
Introduction This article series is supposed to shed some light on the use of IDisposable and objects that inherit from it. In essence, a more apt title for this article would be: using (IDisposable) {}. I’m just not sure how many people would ge…
We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
This Micro Tutorial will give you a basic overview how to record your screen with Microsoft Expression Encoder. This program is still free and open for the public to download. This will be demonstrated using Microsoft Expression Encoder 4.
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question