Re^3: Algorithm for cancelling common factors between two lists of multiplicandsby sk (Curate)
|on Aug 08, 2005 at 22:43 UTC ( #482052=note: print w/replies, xml )||Need Help??|
Update I wrote this when we were trying to figure out the exact output. Not relevant anymore
Your first should work correctly. Did not read the second one yet. One thing you want to note when you test this code is that the result will not match exactly what BrowserUk had coz the cancellation process is kind of subjective when done by humans as opposed to computers
take for example if i have 15 * 3 * 12 / 9 * 17
then I could either do 5 * 12/17 or 15 * 4/17
I guess the final solution should match product of the elements in the array
Another thing, you might get a tiny little benefit if you check for the elements == 1 inside the loop construct and pop them out. I am not sure if that is even possible.
BTW, i think you can add next if $c == 1 or $d == 1; to avoid computing gcd's on 1's.
In Section Seekers of Perl Wisdom