CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 2 of 2
  1. #1
    Join Date
    Mar 2010
    Posts
    1

    Help on evaluating functions.

    Good day everyone.

    I need your help.

    I have this problem involving a function evaluation.

    Let's say F is a mathematical function of multiple variables, and each variable has a discrete number of values.

    For example: F(a,b,c)=(a+b)/c

    and a={1,2,3) b={3,5,6) and c={8,9,7}

    so F(1,3,8)=(1+3)/8=0.5

    In my problem, F is a function of 7 variables. and each variable has a specific number of allowed values, how will I be able to solve all the possible F values? this could be easily done manually for a small number of combinations, but how about for large numbers of possible combinations.

    thank you very much!

  2. #2
    Join Date
    Apr 2008
    Posts
    725

    Re: Help on evaluating functions.

    put all the allowable values per variable into a vector or list, then iterate over all of them. e.g:

    (untested)
    Code:
    #include <iostream>
    #include <vector>
    using namespace std;
    
    float func(float a, float b, float c)
    {
      return (a + b) / c;
    }
    
    int main()
    {
      vector<float> theAs;
      vector<float> theBs;
      vector<float> theCs;
    
      theAs.push_back(1);
      theAs.push_back(2);
      theAs.push_back(3);
    
      theBs.push_back(3);
      theBs.push_back(5);
      theBs.push_back(6);
    
      theCs.push_back(7);
      theCs.push_back(8);
      theCs.push_back(9);
    
      vector<float>::iterator itA = theAs.begin();
      vector<float>::iterator itB = theBs.begin();
      vector<float>::iterator itC = theCs.begin();
    
      for(; itA != theAs.end(); ++itA)
      {
        for(; itB != theBs.end(); ++itB)
        {
          for(; itC != theCs.end(); ++itC)
          {
            cout << func(*itA, *itB, *itC) << endl;
          }
        }
      }
    }

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured