As the power needed to transmit a certain number of bits in
a subcarrier is independent of the numbers of bits allocated to
other subcarriers, it turns out that a greedy approach is optimal.
A greedy algorithm assigns bits to the subcarriers one bit at a
time, and in each assignment, the subcarrier that requires the
least additional power is selected. The bit allocation process
will be completed when all required data rate is satisfied.