def med(x, D, mixed=False):
    """Generate fraction representation using Mediant method"""
    n1, d1 = int(x), 1
    n2, d2 = n1 + 1, 1
    m = 0.0
    if x != n1:
        while d1 <= D and d2 <= D:
            m = float(n1 + n2) / (d1 + d2)
            if x == m:
                if d1 + d2 <= D:
                    n1, d1 = n1 + n2, d1 + d2
                    d2 = D + 1
                elif d1 > d2:
                    d2 = D + 1
                else:
                    d1 = D + 1
                break
            elif x < m:
                n2, d2 = n1 + n2, d1 + d2
            else:
                n1, d1 = n1 + n2, d1 + d2
    if d1 > D:
        n1, d1 = n2, d2
    if not mixed:
        return [0, n1, d1]
    q = divmod(n1, d1)
    return [q[0], q[1], d1]
