Просто хочу посмотреть, есть ли у кого-нибудь более эффективный способ сделать следующее:
Для гистограммы я хотел бы начать с корзины с самой высокой частотой, выбирая меньшую из двух частот. ячейки симметрично на каждой стороне (поэтому, если ячейка с самой высокой частотой равна k с соответствующей частотой f (k), я бы выбрал min (f (k-1), f (k + 1)), min (f (k-2) ), f (k + 2)) и т. д.), пока я не достиг или не превысил заранее заданную сумму вхождения x, и в то же время я хотел бы знать ячейки, на которых остановилась сумма.
Скажем, например,
lstBins = [1,2,3,4,5,6,7,8]
lstFrequencies=[5,3,4,9,6,2,7]
, и моя желаемая предварительно определенная сумма равна 14. Тогда функция должна дать мне:
9 (Bin4, highest frequency to start) + 4 (Bin 3, since 4 < 6) + 2 (Bin 7, since 1 < 3) = 15 (just exceeded 14) ,
, поэтому она вернет minBin = 3, maxBin = 7
В настоящее время я делаю это старомодным способом с while и ifs, пытался что-то сделать для понимания списка, но не мог понять, как суммировать и отслеживать, учитывая, что сумма не просто простое сложение (больше похоже на условную сумму).
Есть предложения?