用于根据某些条件排列数字列表的Python逻辑

时间:2020-05-04 14:15:23

标签: python-3.x pandas

我无法开发适当的逻辑来在python中编码以下问题:

我有一个数字列表[5、10、15、20、25、30],我必须将这些数字填入8个插槽中,这样一个数字应顺序重复至少3次,最多重复5次。如果选择一个号码并使用5次,则下一个选择的号码应大于先前选择的号码。

所有数字的选择不是强制性的。

例如,如果我选择5作为我的第一个数字,那么它应该重复最少3次和最多5次。所以 三种情况可以是:

  1. 5、5、5、5、5、10、10、10(在这种情况下,重复5次5次,重复10次3次,满足条件)
  2. 5、5、5、5、10、10、10、10、10(在这种情况下,重复5次3次,重复10次5次,满足条件)
  3. 5、5、5、5、5、10、10、10、10(在这种情况下,重复5次4次,重复10次4次,满足条件)

以下情况不应出现:

5、5、5、5、10、10、10、15、15(错误分配数字,因为15来了2次,我们最少需要3次)

因此,仅需根据上述3种情况来排列数字。(在这种情况下)

此外,这需要动态解决。就是说,需要填写的数字可以是任何数字的列表,可用的插槽也可以不同。一个数字可以使用的最小和最大次数也可以更改。例如,我们的最小条件为2,最大条件为4。列表中可用的数字可以是10、15、20、25或30、35、40、45等。此列表的长度可以也有所不同。可用于填充这些数字的插槽数也可以更改。

我需要编写逻辑来处理任何动态方案,这将为我提供与该特定方案有关的所有情况。

对此提供的任何帮助都非常感谢。

谢谢!

0 个答案:

没有答案
相关问题