Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
With fractions module solution in Clear category for Oil Pie by Phil15
from fractions import Fraction
def divide_pie(groups):
proportion = 1
nb_drones = sum(abs(group) for group in groups)
for group in groups:
if group > 0:
proportion -= Fraction(group, nb_drones)
else:
proportion *= (1 + Fraction(group, nb_drones))
return (proportion.numerator, proportion.denominator)
if __name__ == '__main__':
assert isinstance((2, -2), (tuple, list)), "Return tuple or list"
assert tuple(divide_pie((2, -1, 3))) == (1, 18), "Example"
assert tuple(divide_pie((1, 2, 3))) == (0, 1), "All know about the pie"
assert tuple(divide_pie((-1, -1, -1))) == (8, 27), "One by one"
assert tuple(divide_pie((10,))) == (0, 1), "All together"
July 14, 2018
Comments: