分配受总约束的用户活跃时间块

Distribute user active time blocks subject to total constraint

我正在构建一个基于代理的产品使用模型。我正在尝试开发一个函数来确定用户是否在给定时间使用该产品,同时结合随机性。

因此,假设我们知道用户每天总共花费 1 小时使用该产品,并且我们知道这段时间的平均分布(例如,大部分时间在下午 6-8 点)。

如何生成一组 usage/non-usage 次(即,在每 10 分钟的时间段内用户是否处于活动状态)同时确保在一天结束时总活动时间总和为一小时.

在大多数情况下,我会 运行 分配器而不关心总时间,然后在最后通过使其与总目标时间成比例来进行标准化,因此总时间为 1 小时。但是,我不能那样做,因为时间段必须是 10 分钟。我认为这是一个不同的问题,因为我真的不是在计算时间范围,我是在计算布尔值以与不同的 10 分钟时间块相关联(例如,用户 was/was 在给定块期间不活动)。

有没有标准的方法来做到这一点?

如果其他人正在看这个,我又做了一些思考并弄明白了。

采取的方法是:您知道给定代理允许的 10 分钟时间块的数量 n

迭代 n 次,每次迭代 select 一天中的一个时间块取决于您的 activity 分布函数。

要点是迭代要放置的时间块数,而不是一整天。