Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: List all different equations for a given one

by kennethk (Abbot)
on Sep 24, 2013 at 16:50 UTC ( #1055516=note: print w/ replies, xml ) Need Help??


in reply to List all different equations for a given one

If you are trying to solve a permutation problem (which is what it sounds like to me), I think you are applying yourself incorrectly. Rather than figuring out how to map your answer to their answer, your parser should generate a canonical read that will necessarily map to yours. For your simple case, it might look like:

my $eq = {op => '+', terms => [1, 'x', ], };
where a canonical sorting algorithm is used to order terms. Note that, if you want to accept complex expressions, the sort is non-trivial since you'll need to rank complex references, so cmp won't be enough. This type of format also supports nested operations:
my $eq = {op => '+', terms => [{ op => '*', terms => [3, 'z', ], }, 'x', ], };
You can then do a recursive descent in order to check equivalence. Of course, this isn't going to help you with distributivity.

#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.


Comment on Re: List all different equations for a given one
Select or Download Code
Re^2: List all different equations for a given one
by jess195 (Novice) on Sep 24, 2013 at 17:06 UTC

    Distributivity is something to think about... Thanks for bringing it up. And yes, I'm trying to solve a permutation problem taking commutativity and associativity properties into account. Looks to me this way is best that what I have been trying so far.... Thanks!

      If you haven't seen this yet, likely worth a read: Stack Overflow


      #11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.

        Yes I have looked at it before. Was inspired to use the shunting yard algorithm after reading it! :)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (5)
As of 2015-07-07 02:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (86 votes), past polls