(我的统计能力不强,所以如果我在这里没有使用正确的术语,请原谅我)
假设我有一本书有很多(1000+)个部分,每个部分包含的单词数量差异很大。我的目标是将这些部分划分为一段时间(比如说 150 天),按顺序阅读这些部分,但每天阅读的字数尽可能少。
例如,我需要在三个月内读完一本巨大的税法书的每一个字。它分为从几句话到多页不等的部分。我只想阅读完整的部分,并且我希望每天花尽可能多的时间阅读。
我编写了一个这样工作的脚本:
1. 我将各个部分平均划分为天数,而不考虑每天的字数。对于剩余的部分,我选择了一个均匀间隔的天集合,并为每个天添加一个部分。
2. 然后我计算每天最终的实际字数,计算平均值,然后选择离平均值最远的那一天。
3.根据当天的字数,我根据3个场景来评估字数的标准差:a)当天第一节移到前一天,b)当天最后一节移到第二天,并且 c) 没有变化。如果 a 或 b 导致较低的标准偏差,我保留该更改并返回第 2 步。如果没有,我移动到与每天平均单词差异最大的那一天,并重复第 3 步。
4. 最终在集合中的每一天运行第 3 步后,算法将无法找到改善标准差的变化。至此,脚本完成。
我已经对此进行了测试,它可以工作并提供比第 1 步的结果更平滑的集合。但是我没有以这种方式找到最佳的部分分布……我仍然有可以手动修复的大峰。
我的下一个想法是在第 3 步中允许更复杂的场景……回顾/向前看更多天或移动更多部分。但我不确定这是否会奏效。
我想做的事情有名字吗?这个问题已经解决了吗?有比我更好的方法吗?(实际上,我的脚本需要很长时间才能在网站上实时运行)我没有运气搜索,但我什至不确定我在搜索什么。有人已经创建了一个算法来做到这一点吗?有更好的想法吗?我不确定如何标记问题,因为我对这些术语不够熟悉。