The following algorithm can be applied to a list of fractions and an integer input. You go down the list and multiply the input by the first fraction that will result in an integer. Taking this product as the new input, you repeat, using the same list of fractions. The algorithm ends when none of the fractions will result in an integer.
For example, if the list of fractions is {5/6, 5/2, 5/3}, then inputting an integer 2a * 3b will result in 5max(a,b). A more complicated example: inputting 2a * 3b into {7/11, 11/(3*7), 1/7, (5*7)/2, 3/5} will result in 3a (if a>0).
Find a list of fractions such that inputting an integer 2a * 3b will result in 5ab.
How about a list that, when the input is 2a * 3b, results in 5a^b (with b>0)?
(In reply to
simplification of part 2 by Joel)
I like your solution. It is very memory efficient. I had to use primes up to 23. And mine didn't work for b=0.
My simulations show that your list takes somewhere around 9*a^b iterations.
|
Posted by Tristan
on 2006-11-22 04:09:47 |