`
hilly
  • 浏览: 49776 次
  • 性别: Icon_minigender_1
  • 来自: **
社区版块
存档分类
最新评论

反排序:如何均匀的分散对象?

阅读更多

这样一个应用也许很常见:

有n个学校,每个学校的学生的人数都不同,但可确定。来自这些不同学校的学生,全部打乱,要求同一学校的学生尽可能的分散。(如安排考场座位或者交友分组等应用)

 

这显然不是正常的按某一属性(年龄,年级,性别,成绩等)排序,而是无规则的排序。我不清楚是否有专业术语来表述这种算法,姑且叫反排序吧。

 

目前想到的办法:

  • 方法一,取所有学生的总数totalCount以内的随机数,做totalCount次循环,让每一学生按该随机数归位,如该随机数已生成过(该位已有学生),自动归位++,依此类推。这样易实现,但似乎随机,却仍然不是很均匀的分散。
  • 方法二,新建一个包含totalCount个元素的集合,首先找到人数最多的那个学校,把该学校所有学生均匀间隔 放入集合中指定位置,这样首先是很均匀的分散了,再找人数第二多的学校,也均匀间隔 放入集合,如集合中已存在对象,自动归位++,依此类推。这样似乎更合理,分散得更均匀。实现也不难。

 

但似乎还有更好的办法实现吧?

 

大家给个办法。谢谢!

分享到:
评论

相关推荐

    AWS Certified Developer Associate模拟题 - Part1

    - 按照年月日小时排序的命名方式有助于分散数据访问,减少热点。 - D. instanceID_log-HH-DD-MM-YYYY - 实例ID作为前缀可能导致热点,尤其是在多实例的情况下。 - E. instanceID_log-YYYY-MM-DD-HH - 实例ID作为...

    SAS软件和统计应用教程PPT课件.ppt

    总体是研究对象的全部,而样本是从总体中选取的一部分。参数是描述总体特性的量,如总体平均值μ、方差σ²和比例π。统计量则是基于样本数据的量,例如样本均值x̄、样本方差s²和样本比例P。 2.1.2 表示数据位置...

    bidu 百度2009 科大 笔试题目

    为了均匀分布,可以选择一致性哈希算法。每个数据库完成时间的保持一致可以通过负载均衡策略实现,如轮询分配新链接。为了快速获取网页,可以采用缓存机制和预加载策略。 【开放性题目】 设计一个简单的ORMapping...

    GeneralStats_statsgeneral_统计分析_

    2. 中位数:中位数(Median)是将数据按大小排序后位于中间位置的数值。当数据分布不均匀时,中位数更能反映数据的典型值。 3. 众数:众数(Mode)是一组数据中出现次数最多的数值,可以用来识别数据集中最常见的值...

    阿里巴巴2017校园招聘笔试题 广州(1).pdf

    7. **C++/JAVA中的static成员**:static成员属于类,而非对象,所以C选项正确,static成员函数不能访问非static成员变量,也不能在对象成员函数中直接调用。 8. **最短路径问题**:这是一个经典的图论问题,根据...

    Oracle存储空间管理及应用方案.docx

    - **临时表空间(TEMP)**:用于存储临时数据,例如排序操作或表连接时产生的临时结果集。在高负载环境中,可能需要配置多个临时表空间来分散负载。 - **工具表空间(TOOLS)**:专门用于保存数据库工具软件所需的...

    PADS_Layout_2007中文教程

    - **选择与排序**:提供灵活的选择和排序机制。 - **自定义规则**:允许用户根据需要定制项目浏览器的行为。 - **自定义默认设置**:针对PADS Logic和PADS Layout分别设置默认配置,包括启动条件和启动文件等。 ...

    职称计算机考试PowerPoint模拟题练习(五).docx

    4. **分散对齐**:文本在行内均匀分布,使每行的长度相同。 5. **两端对齐**:类似于Word文档中的“两端对齐”,使文本两端对齐。 **答案解析**:PowerPoint支持以上所有对齐方式,因此正确答案是**C. 左对齐、右...

    阿里巴巴校园招聘笔试题

    1. **散列函数**:一个好的散列函数应尽可能使得键值均匀分布到散列表的槽中,减少冲突。选项A(K mod N)是常见的散列函数,能够较好地分散数据。选项B(1)会导致所有元素都映射到同一个位置,不是好的散列函数。...

    Redis面试知识点.pdf

    - **均匀分布过期时间**:将过期时间设置得稍微分散些,减轻内存回收的压力。 #### 39、使用过Redis做异步队列么,你是怎么用的? - **使用List结构**:通过`LPUSH`和`BRPOP`实现队列的功能。 - **使用Stream结构*...

    南京腾讯2013实习笔试

    18. **单项哈希函数**:单项哈希函数应具有良好的分散性和较低的冲突率,使得输入值能均匀分布到哈希表中。 19. **编译连接特性**:编译连接过程涉及语法检查、语义分析、优化和目标代码生成,连接则负责合并多个...

    NoSQL数据库笔谈

    - **对数据进行分区**: 将数据分散到不同的节点上以提高系统的可扩展性。 - **保存同一数据的多个副本**: 通过数据冗余提高系统的可用性和可靠性。 - **动态伸缩**: 系统能够自动调整节点数量以应对负载变化。 - **...

    PADS原理图及PCB设计

    - **知识点概述:** 此节主要讲述如何将原理图的设计结果即网表文件导入到PCB设计环境中,并且使各个元件均匀分布于PCB上,便于后续布局与布线操作。 - **详细内容:** - 使用“Import Netlist”功能从外部文件导入...

    Elasticsearch5学习笔记和Java对es进行增删改查示例

    - **过滤和排序**: 通过`must`、`should`、`not`等布尔运算符进行过滤,`sort`参数实现排序。 5. **分布式特性** - **自动分片和副本**: 数据自动分散在多个节点上,提高可用性和容错性。 - **路由和负载均衡**:...

    阿里面试问题总结.docx

    - **主要内容**:为了解决单数据库性能瓶颈,将数据分散到多个数据库或表中。 - **考察点**:数据库设计、SQL优化技巧、中间件使用经验。 #### BIO与NIO - **主要内容**:BIO为同步阻塞I/O模型,NIO为同步非阻塞I/O...

    2022年《办公软件高级应用案例教程(-Office-2016-)》期末考试卷及答案.docx

    - **分散对齐**:文本在段落内均匀分布,最后一行默认为左对齐。 9. **PowerPoint中幻灯片排序与管理** - 在**幻灯片浏览视图**中可以轻松地移动幻灯片顺序、添加或删除幻灯片。 10. **修改幻灯片版式** - 通过...

Global site tag (gtag.js) - Google Analytics