-3
我具有範圍N
元件的總數目和若干塊nb
的最佳方式範圍分成n個相等的範圍在Python
我要劃分N
成nb
最佳可能等於範圍,只用起始號碼和結束號碼。因此,例如,N=24
和nb=5
應該輸出:
0,5 5,10 10,15 15,20 20,24
雖然N=28
和nb=5
應該輸出:
0,5 5,10 10,16 16,22 22,28 (the rest of `N/nb` division is equally distributed on the 3 last subranges)
基於一個評論,我有這樣的方法:
def partition(lst, n):
division = len(lst)/n
return [lst[round(division * i):round(division * (i + 1))] for i in range(n)]
def ranges(N, nb):
return ["{},{}".format(r.start, r.stop) for r in partition(range(N), nb)]
>>> ranges(28, 5)
['0,6', '6,11', '11,17', '17,22', '22,28']
有一個更好的方法來做到這一點?
這有點類似於這個問題:https://stackoverflow.com/q/2659900/270986 –