Polynomial Equation Brute Forcer

Advertisemen

I required this to help understand a pattern in a Project Euler problem, may be useful in the future (it didn't solve the Euler problem though :/)


#include <iostream>
#include <string>

using namespace std;

int main()
{
       //find a function for which
       // f(1) = 2
       // f(2) = 6
       // f(3) = 20

       int lVal[] = { 1, 2, 3  };
       int rVal[] = { 2, 6, 20 };
       int arrSize = 3;

       //an + b
       int COEFFICIENT_MAX = 50;
       int correct = 0;
       for (int a=-COEFFICIENT_MAX;a<COEFFICIENT_MAX+1;a++)
       {
              for (int b=-COEFFICIENT_MAX;b<COEFFICIENT_MAX+1;b++)
              {
                     correct = 0;
                     for (int v=0;v<arrSize;v++)
                     {
                           if (a*lVal[v] + b == rVal[v]) correct++;
                           else break;
                     }
                     if (correct > 2)
                           cout << a << "n + " << b << endl;
              }
       }

       //cn^2 + an + b
       for (int a=-COEFFICIENT_MAX;a<COEFFICIENT_MAX+1;a++)
       {
              for (int b=-COEFFICIENT_MAX;b<COEFFICIENT_MAX+1;b++)
              {
                     for (int c=-COEFFICIENT_MAX;c<COEFFICIENT_MAX+1;c++)
                     {
                            correct = 0;
                           for (int v=0;v<arrSize;v++)
                           {
                                  if (c*lVal[v]*lVal[v] + a*lVal[v] + b == rVal[v]) correct++;
                                  else break;
                           }
                           if (correct > 2)
                                  cout << c << "n^2" << " + " << a << "n + " << b << endl;
                     }
              }
       }


       cin.get();

       return 0;
                    
}

Advertisemen

Disclaimer: Gambar, artikel ataupun video yang ada di web ini terkadang berasal dari berbagai sumber media lain. Hak Cipta sepenuhnya dipegang oleh sumber tersebut. Jika ada masalah terkait hal ini, Anda dapat menghubungi kami disini.

Tidak ada komentar:

Posting Komentar

© Copyright 2017 Game Engine Tutorial