十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
鉴于你提的问题,我拆分成为了两部分,假设23和3都是变量,要完成这个事情,首先要知道给每个人应该分配多少任务,然后就是分配任务的事情了
创新互联公司主要业务有网站营销策划、网站制作、成都网站建设、微信公众号开发、微信小程序开发、HTML5、程序开发等业务。一次合作终身朋友,是我们奉行的宗旨;我们不仅仅把客户当客户,还把客户视为我们的合作伙伴,在开展业务的过程中,公司还积累了丰富的行业经验、网络营销推广资源和合作伙伴关系资源,并逐渐建立起规范的客户服务和保障体系。
# 任务数
$m = 23;
# 模拟任务id
$order = range(1,$m);
# 用户
$user = ['小红', '小明', '小花'];
$n = count($user);
# 单人最少任务数
$min = floor($m / $n);
# 单人最多任务数
$max = $min + 1;
# 最多任务数的人数
$maxNum = $m - $min * $n;
# 每人多少个任务
$userNum = array_merge( array_fill(0, $maxNum, $max), array_fill(0, $n - $maxNum, $min) );
# 打乱
shuffle($userNum);
# 每个用户多少任务
$user = array_combine($user, $userNum);
# 分配任务
$ret = [];
foreach( $user as $_user = $_count){
# 随机分配
$ret[$_user][] = array_rand($order, $_count);
}
代码写的比较简单,而且很明显任务数太大会有问题。
如果是比较大的任务分配系统,建议采用队列,按照楼上的说轮流或随机或按权重进行分配
有什么问题的话可以互相交流,还望采纳
function getDivideNumber($number, $total, $index = 2) {
// 取平均数
$divide_number = floor($number / $total * pow(10, $index)) / pow(10, $index);
$divide_number = number_format($divide_number, $index, '.', '');
// 获取最后一个数字
$last_number = $number - $divide_number * ($total - 1);
$last_number = number_format($last_number, $index, '.', '');
// 拼装平分后的数据返回
$number_str = str_repeat($divide_number . ',', $total - 1) . $last_number;
return explode(',', $number_str);
}
$array = getDivideNumber(120, 3, $index = 0);
得到平均分配的数字数组,用遍历后入库
我只列出SQL查询语句,具体在VB怎么用就你自己搞定了,因为你提供的信息有限,没法给你提供完整的VB代码:
select max([序号]) as 最大序号, avg([平均值]) as 总平均值 from 表名
要得到转动惯量 列中所有数据的平均值,你可以自己举一反三啊,一定要嚼烂了你才会吃啊:
select max([序号]) as 最大序号, avg([平均值]) as 总平均值, avg([转动惯量]) as 转动惯量平均值 from 表名
或者分别求三个值也行:
select max([序号]) as 最大序号 from 表名
select avg([平均值]) as 总平均值 from 表名
select avg([转动惯量]) as 转动惯量平均值 from 表名
Set rs1 = db.OpenRecordset("select avg(转动惯量) from 项目")
然后rs1(0)的值就是“项目”这个表中所有“转动惯量”的平均值了
mysql_select_db("my_db", $con);
$sql="select avg(ehscore) from history";
$query=mysql_query($sql);
echo $query;
/***********
while($row=mysql_fetch_array($query))
{
echo "平均数为".$sql;
}
****************/
mysql_close($con);
select avg(ehscore) from history;查询出的结果就是平均值,直接输出就可以了,不需要后面的循环
可以在查询获取50条后对数据进行处理,那就是用公式如何50条取12条的问题,当然也可用随机,但是随机的分布就不是那么均匀了,另外也可用直接查询的时候用随机或者分段取值