 帮我在写一个算法
入参有高位/中位/低位（H/M/L），5个上期前区号码，加2个上期后区号码，加一个本期首球。
详情：
高位
1. 拿到每个前区的球号作为masterBallNumber去D9表查询，取出前30个（按线系数从大到小排列）slaveBallNumber从球号以及对应的系数值,共30x5。
2. 再从dlt_frontend_history_top取平均值向上连续3个球号（按系数排行），无需记录系数值。
3. 再从dlt_frontend_history_top_100取平均值向上连续3个球号（按系数排行），无需记录系数值。
4. 再拿每个后区的球号作为主球号去D12表中查询，取出前30个（按线系数从大到小排列）slaveBallNumber从球号以及对应的系数值，共30x2。
5. 再拿最后一个首球球号去D5表查询，取出前11个（按线系数从大到小排列）slaveBallNumber从球号以及对应的系数值,共11x1。
注意：系数值无需区分用一个统一的map即可。
统计出这个map里面的各个球号、球号对应出现的次数、对应的系数和、 以及球号对应的百期排位、球号对应的历史排位。（其中百期排位对应的表是dlt_frontend_history_top_100，历史排位对应的表是dlt_frontend_history_top）
注意：百期排位如果系数相同则对应的排位也相同，历史排位也一样
最后返回各个球号、球号对应出现的次数、对应的系数和、 以及球号对应的百期排位、球号对应的历史排位。

中位：
1. 拿到每个前区的球号作为masterBallNumber去D9表查询，取出前30个（按线系数从大到小排列）slaveBallNumber从球号以及对应的系数值,共30x5。
2. 再从dlt_frontend_history_top取平均值向上连续3个球号（按系数排行），无需记录系数值。
3. 再从dlt_frontend_history_top_100取平均值向上连续3个球号（按系数排行），无需记录系数值。
4. 再拿每个后区的球号作为主球号去D12表中查询，取出前30个（按线系数从大到小排列）slaveBallNumber从球号以及对应的系数值，共30x2。
5. 再拿最后一个首球球号去D5表查询，，取出第一个系数 比 （系数的平均值）大的球号（也就是系数大的最小的球号）。
 取这个这个球号向上5个球，向下5个球，共同组成11个球，同时记录这11个球号 的系数,共11x1。
注意：系数值无需区分用一个统一的map即可。
统计出这个map里面的各个球号、球号对应出现的次数、对应的系数和、 以及球号对应的百期排位、球号对应的历史排位。（其中百期排位对应的表是dlt_frontend_history_top_100，历史排位对应的表是dlt_frontend_history_top）
注意：百期排位如果系数相同则对应的排位也相同，历史排位也一样
最后返回各个球号、球号对应出现的次数、对应的系数和、 以及球号对应的百期排位、球号对应的历史排位。

低位
1. 拿到每个前区的球号作为masterBallNumber去D9表查询，取出前30个（按线系数从大到小排列）slaveBallNumber从球号以及对应的系数值,共30x5。
2. 再从dlt_frontend_history_top取平均值向上连续3个球号（按系数排行），无需记录系数值。
3. 再从dlt_frontend_history_top_100取平均值向上连续3个球号（按系数排行），无需记录系数值。
4. 再拿每个后区的球号作为主球号去D12表中查询，取出前30个（按线系数从大到小排列）slaveBallNumber从球号以及对应的系数值，共30x2。
5. 再拿最后一个首球球号去D5表查询，取系数最小值（含最小值）向上第3-13的球，共11个球号以及对应的系数值，共11x1。
注意：系数值无需区分用一个统一的map即可。
统计出这个map里面的各个球号、球号对应出现的次数、对应的系数和、 以及球号对应的百期排位、球号对应的历史排位。（其中百期排位对应的表是dlt_frontend_history_top_100，历史排位对应的表是dlt_frontend_history_top）
注意：百期排位如果系数相同则对应的排位也相同，历史排位也一样
最后返回各个球号、球号对应出现的次数、对应的系数和、 以及球号对应的百期排位、球号对应的历史排位。























