【发布时间】:2022-11-19 20:22:39
【问题描述】:
给定一个整数n,有什么算法可以将它分成d部分的数组,其成员和原始整数n的性质大致相等,并且相当均匀分布在整个阵列?例如将 13 分成 10 个部分看起来像这样:
[1, 1, 2, 1, 1, 2, 1, 1, 2, 1]
【问题讨论】:
-
或者,可以使用 Bresenham line-drawing algorithm 的变体以您想要的方式交错您的值。您需要决定何时使用
n/d以及何时使用n/d + 1。这类似于 Bresenham 的算法,它必须决定何时只在 x 方向上移动,以及何时在 x 和 y 方向上都移动。 -
@Stef 不,那是另一个问题;我不关心零件是 2 的倍数,还是任何东西的倍数。
-
参见例如 python 中的the code of more_itertools.interleave_evenly。
-
这是对我说的某件事说“不”,还是对我说的一切说“不”?
标签: arrays algorithm division integer-division