Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: List all different equations for a given one

by BrowserUk (Patriarch)
on Sep 24, 2013 at 17:59 UTC ( [id://1055521]=note: print w/replies, xml ) Need Help??


in reply to List all different equations for a given one

Any idea how would I solve such a problem?

Substitute a semi-random range of numerical values for each variable into both equations and evaluate them. If the both result in the same answer, for a well-chosen set of inputs, they're probably the same equation.

Of course, that kind of just moves the goal posts a little to one of coming up with a good set of values; but given the performance of modern processors, unless these are quite complicated formulae, you can probably afford to throw a little (or even quite a lot) of everything at them and still get a statistically, highly probable answer in a few seconds.


With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^2: List all different equations for a given one
by jess195 (Novice) on Sep 24, 2013 at 18:25 UTC

    actually I was using shunting yard algorithm to do me one thing: break down the equation into parts so I can swtich tings around. For example if I have a * b + c, then the algorithm should return: a b * c +, and then from here I would list different things, like add b a * c +, or c b a * + to the list of accepted equations, yet there are a lot to consider. But that's really difficult to do, as you will end up brute forcing everything. I believe the same goes to your way of solving it. I'm sure there is a smarter way to solve and take into consideration performance.

      If the only operations allowed are + - / * and ** plus parens then read my answer again for a "smart" solution.

      update

      or specify which operations are allowed... e.g. polynom devisions might a challenge for you.

      Cheers Rolf

      ( addicted to the Perl Programming Language)

Re^2: List all different equations for a given one
by LanX (Saint) on Sep 24, 2013 at 21:02 UTC
    How many random numbers do you need to proof that abs($x**10000001) and abs($x**10000000) are identical? :)

    Please if you consider replying that you limit the range as soon that one function returns inf think about functions with multiple separated intervals not being inf.

    I'd rather avoid numerical approaches as long as possible. (IIRC for instance some differential equations can only be solved numerically)

    Cheers Rolf

    ( addicted to the Perl Programming Language)

      How many random numbers do you need {drivel} {drone}

      Not many. My first guess:

      $x = 1.000000001; say abs($x**1e8);; 1.10517092716461 $x = 1.000000001; say abs($x**(1e8+1));; 1.10517092826979

      You seem to have missed: "semi-random range" & "well-chosen set of inputs". Inspecting a string for exponentiation by big constants is trivial.

      if you consider replying that you limit the range as soon that one function returns inf think about functions with multiple separated intervals ...

      Vary them one at a time...

      I'd rather avoid ...

      You are quite welcome to do things the hard way; it seems to suite.

      The OP asked for ideas.


      With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1055521]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (3)
As of 2024-03-28 17:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found