吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 840|回复: 14
收起左侧

[求助] java 算法请教

[复制链接]
ppgjx 发表于 2022-8-11 14:52
本帖最后由 ppgjx 于 2022-8-11 14:56 编辑

我现在有个需求,就是给你一个额定的天数比如150天,再给你一个任务数量,比如50次,要求在120天内把50次消耗完,但要是随机时间的,如果这个次数大于天数就要考虑一天做两次,这两次在一天的时间里也是必须是随机时间的,如何处理这个随机时间呢?主要是 他要求是这个任务分配应该是看似是正常的,比如两三天做一次,不能是那种到了150天,把50次都分配到一天去了,很头疼这个问题 ,我目前做的是 150 / 50 求出平均每三天做一次,然后每次都是在1-3这个区间加天数,但是如果是次数大于天数我就不知道咋办了,还有这个时间如代码我只是再原有的时间加一天,没有办法做到在一天的时间内随机抽取一个时间做 , 而且我这个代码  while (day >= ave )可能会导致次数做不完的问题

   //天数
    int day = 150;

    //任务数量
    int taskCount = 50;

    //平均每次任务需要几天
    int ave = day / taskCount;

    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date());
    //获取150天之前的时间
    calendar.add(Calendar.DAY_OF_MONTH, -150);

    //总天数要大于平均天数 否则可能会有负数的问题 还会导致最后一次任务时间超过今天的时间
    while (day >= ave ){
        //随机天数
        int i = new Random().nextInt(ave) + 1;
        //添加天数
        calendar.add(Calendar.DAY_OF_MONTH, i);
        //总天数减去
        day = day  - i;
        //输出天数
        System.out.println(DateUtil.date(calendar.getTime()));
    }

免费评分

参与人数 2热心值 +2 收起 理由
glz220 + 1 用心讨论,共获提升!
RanTan + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

kiseyzed 发表于 2022-8-11 14:59
天数》》时数》》秒数》》毫秒数……
总有一个可以满足大于次数
yuluo829 发表于 2022-8-11 15:02
kiseyzed 发表于 2022-8-11 14:59
天数》》时数》》秒数》》毫秒数……
总有一个可以满足大于次数

这种应该发悬赏贴,
yuluo829 发表于 2022-8-11 15:03
sinab 发表于 2022-8-11 15:14

这种应该发悬赏贴
Cool_Breeze 发表于 2022-8-11 15:15
首先你得晓得每一个任务的完成时间是多久。知道了就解决了。
头像被屏蔽
88868 发表于 2022-8-11 15:21
提示: 作者被禁止或删除 内容自动屏蔽
wihn 发表于 2022-8-11 15:44
要是真随机么,那当然就有可能比如50次全随机到了一天,那是没办法的事,因为是真随机。
我觉得你这种情况可以这样:150天按照要做的次数平均分,假设要做的次数是300次,那么一天里肯定有两个时刻是做事的对吧(觉得分不出来就150乘上24小时再分,以此类推),然后让这两个时刻随机在一定范围内浮动即可。
waper97 发表于 2022-8-11 16:02


这种应该发悬赏贴
rinima 发表于 2022-8-11 16:10
感谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 07:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表