php计算数组可以吗,PHP计算平衡数组

好吧,我不确定标题是否有效,但它是我能想到的最好的.

基本上这是场景.

我有11个类别.在每个类别中,我都有项目,但是一个类别可能有1个项目,1个可能有20个项目.

现在我想将11个类别分成5个堆栈或列.

我希望每个堆栈包含相等数量或几乎相等数量的项目,并且没有类别项目可以溢出堆栈.

所以给出以下数据:

Category | Items

-------------------------

Cat 1 | 10

Cat 2 | 3

Cat 3 | 7

Cat 4 | 11

Cat 5 | 5

Cat 6 | 13

Cat 7 | 19

Cat 8 | 5

Cat 9 | 3

Cat 10 | 9

Cat 10 | 15

Total = 100 Items

所以我希望项目在堆栈中均匀分布.

有5个堆栈,所以每个堆栈应该有20个项目.但是有问题,1堆栈的项目不能溢出.那么如何计算输出的数据如下:

Stack 1|Stack 2|Stack 3|Stack 4|Stack 5

-------|-------|-------|-------|-------

Cat 10 |Cat 1 |Cat 11 |Cat 6 |Cat 7

Cat 4 |Cat 3 |Cat 8 |Cat 9 |

|Cat 2 | |Cat 5 |

20 20 20 21 19

只要项目在堆栈中最均匀地分布,哪个类别在哪个堆栈中无关紧要.

现在这个堆栈计算的结果将被缓存,因为我不需要经常计算,所以如果解决方案非常CPU,仍然发布它.

谢谢 :)

解决方法:

一种简单的方法是尝试所有可能的组合.您计算的每个组合也会计算标准偏差.使用标准偏差保存最佳拟合组合.

标签:php,algorithm,arrays

来源: https://codeday.me/bug/20190710/1423433.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值