关键词:
引言: 前些天项目里遇见一个需求, 给专家分配作品, 觉得还蛮有趣, 感兴趣的同学可以读下去, 阅读此文大概需要...(我也不知道几分钟...
1: 见图
这个需求是这样子的, 要给选中的专家分配作品, 有两种情况,
1: 每位专家部分作品, 也就是均分, 如果作品均分完还有余数, 则再继续分, 直至分完结束.
2: 每位专家评审所有作品, 也就是所有作品都会被每位专家评审.
因为存在一对多及多对多的关系, 首先要先建张表, 表里有三个字段, 主键id, 作品id, 专家id, 如下:
ok, 建好数据表之后我们暂时先看其中一种 "每位专家部分作品" ,
做这个每位专家部分作品前, 先来看以下代码, "给老师分书":
public function expertDistributionAction() { $book = [1,2,3,4,5,6,7,8,9,10,11,12,13,14]; //14本书 $doc = 4; //4个老师 $arr = []; $z = (int)(count($book)/$doc); //整数 3 $y = count($book)%$doc; //余数 2 $un = []; //分配整数, 循环老师 for ($i = 0 ; $i < $doc; $i++){ for($j = 0; $j < $z ; $j++){ $arr[$i]['book'][] = $book[$j]; //把已经分配的数放入$un数组里 array_push($un,$j); //$un = [0,1,2]; } //把已经分配的给unset掉 for($d = 0; $d < count($un) ; $d++){ unset($book[$un[$d]]); } //重建索引 $book = array_values($book); //$book = [4,5,---14] } //余数分配, 即每人一本 for($i = 0; $i < $y ; $i++){ //$y = 2; $arr[$i]['book'][] = $book[$i]; } return $arr; }
上面的注释已经写的蛮清楚, 这个分书的算法要注意的是以下几点:
1: 第一层是循环老师人数, 这个很关键
2: 分配完的书需要在数组里去掉
3: 去掉分配完的书后数组 "重建索引", 分完一个老师重建一次
了解分书的逻辑后就开始代码了 (未完待续...
如何给抖音视频选择配乐?音乐是抖音作品重要的组成部分
一个好的配乐对作品有着至关重要的作用,即使一个普通的视频,如果搭配了一个恰当的配乐,那么这个作品也会表现的非常好。在抖音上面我们应该都看到过这样的作品:只能简单的一个镜头,但是因为一个恰当的音乐,当两... 查看详情
Cilk中给线程分配任务,给NUMA节点分配线程
】Cilk中给线程分配任务,给NUMA节点分配线程【英文标题】:AssigningtaskstothreadsinCilkandassigningthreadstoNUMAnodes【发布时间】:2013-08-2504:18:55【问题描述】:例如,有三个线程。线程1被分配了任务1、2和3。线程2被分配了任务4、5和6。... 查看详情
将 at 标签分配给 Github Release 也会将其分配给 Commit
】将at标签分配给GithubRelease也会将其分配给Commit【英文标题】:WillassigningattagtoaGithubReleasealsoassignittotheCommit【发布时间】:2014-04-1321:59:57【问题描述】:假设指定的commit还没有标签,是否将at标签(例如v1.1.0)分配给Githubrelease也... 查看详情
跳出思维的“盒子”,聊聊rte应用创新大赛的那些作品
...圆满落幕。在今年的大赛中,来自行业中不同领域的专家参与了决赛评选,包括Linux中国技术社区技术负责人白宦成、声网Agora资深iOS开发工程师龚宇华、北京音视跳动首席架构师兼讲师李超、SegmentFault思否CTO祁宁、环信C... 查看详情
为啥可以将字符串分配给 char* 指针,但不能分配给 char[] 数组?
】为啥可以将字符串分配给char*指针,但不能分配给char[]数组?【英文标题】:Whycanastringbeassignedtoachar*pointer,butnottoachar[]array?为什么可以将字符串分配给char*指针,但不能分配给char[]数组?【发布时间】:2011-10-1119:34:42【问题描... 查看详情
将'\'分配给char [重复]
】将\\\'\\\\\\\'分配给char[重复]【英文标题】:Assign\'\\\'tochar[duplicate]将\'\\\'分配给char[重复]【发布时间】:2016-01-0613:01:43【问题描述】:如何将\'\\\'的值分配给字符变量?C++不将反斜杠识别为字符,并认为后面应该有一个\'t\'或\'... 查看详情
将标签分配给不同的组分配方案
】将标签分配给不同的组分配方案【英文标题】:Assigninglabelstodifferentgroupassignmentscenarios【发布时间】:2022-01-2406:11:26【问题描述】:我有一个data.frame将ids分配给groups。在最简单的情况下,每个id都被分配给不同的group:df1<-dat... 查看详情
为啥我收到“无法分配给操作员”错误?
】为啥我收到“无法分配给操作员”错误?【英文标题】:WhyIget\'can\'tassigntooperator\'error?为什么我收到“无法分配给操作员”错误?【发布时间】:2019-11-1121:52:48【问题描述】:当我尝试将LabelEncoder()分配给label_encoder时,出现错... 查看详情
微软最有价值专家简介
...术直通车”的公众号——techlnk,咨询关于微软最有价值专家的一些情况。在此“技术直通车”通过从微软最有价值专家(中国)项目组获取的官方信息,整理了一篇关于MicrosoftMVP的介绍奉献给大家。也作为给“技术直通车”的... 查看详情
给专家的一份:Plugable gwt module & CompileModule class & XXXX.gwtar file?
】给专家的一份:Plugablegwtmodule&CompileModuleclass&XXXX.gwtarfile?【英文标题】:onefortheexperts:Pluggablegwtmodule&CompileModuleclass&XXXX.gwtarfile?【发布时间】:2011-11-1120:10:47【问题描述】:专家问题:可插拔gwt模块&CompileModule类&... 查看详情
分配给 iphone sdk 中已分配的变量
】分配给iphonesdk中已分配的变量【英文标题】:allocatingtoalreadyallocatedvariableiniphonesdk【发布时间】:2012-02-0909:39:25【问题描述】:我想为我已经分配的变量分配内存。例如self.m_tabbarController=[[TabbarControlleralloc]init];我必须为上面的... 查看详情
快速通读《构建之法》后的疑问:
...作来完成一个或多个项目的,那么在团队项目的成员任务分配中,每个人的技术认识水平不同,虽说按各自的优势划分,但具体如何合理有效地分配给所有成员任务?2.在软件开发之前要做充分的软件需求分析,但在实际的开发... 查看详情
类型“XX”不可分配给类型“YY”。 'XX' 可分配给'YY' 类型的约束,但'YY' 可以被实例化
】类型“XX”不可分配给类型“YY”。\\\'XX\\\'可分配给\\\'YY\\\'类型的约束,但\\\'YY\\\'可以被实例化【英文标题】:Type\'XX\'isnotassignabletotype\'YY\'.\'XX\'isassignabletotheconstraintoftype\'YY\',but\'YY\'couldbeinstantiated类型“XX”不可分配给类型... 查看详情
如何将 UIBarButtonSystemItemAction 图标分配给 UIButton?
】如何将UIBarButtonSystemItemAction图标分配给UIButton?【英文标题】:HowcanIassigntheUIBarButtonSystemItemActionicontoaUIButton?【发布时间】:2010-02-0821:45:11【问题描述】:我在UITableViewCell中有一个UIButton,我想将标准的“操作”图标分配给这个... 查看详情
分配给运行 QFuture
】分配给运行QFuture【英文标题】:AssigningtorunningQFuture【发布时间】:2015-09-1618:15:14【问题描述】:我可以将另一个QFuture对象分配给已经运行的QFuture对象吗?如下例所示:QFuture<int>future=QtConcurrent::run(function);future=QtConcurrent::... 查看详情
分配给委托的通用方法
】分配给委托的通用方法【英文标题】:GenericMethodassignedtoDelegate【发布时间】:2013-12-2507:46:07【问题描述】:我对委托和通用方法有点困惑。是否可以将委托分配给具有泛型类型参数的方法?IE://Thisdoesn\'tallowmetopassagenericparamet... 查看详情
直接调用分配给对象属性的闭包
】直接调用分配给对象属性的闭包【英文标题】:Callingclosureassignedtoobjectpropertydirectly【发布时间】:2011-05-3022:29:51【问题描述】:我希望能够直接调用我分配给对象属性的闭包,而无需将闭包重新分配给变量然后调用它。这可... 查看详情
打字稿 - 字符串'不可分配给类型'FC
】打字稿-字符串\\\'不可分配给类型\\\'FC【英文标题】:Typescript-string\'isnotassignabletotype\'FC打字稿-字符串\'不可分配给类型\'FC【发布时间】:2021-11-1005:23:15【问题描述】:我遇到了错误Type\'(props:PropsWithChildren)=>string\'不可分配... 查看详情