sorting - 超级时间复杂度:学年开始了,如何更好地安排学生的坐姿
问题描述
为 60 名学生安排座位,以及如何安排座位,使每个人的整体满意度最高。
规则如下:
每个学生写下 3 个同学的名字,表示最想要的同桌。
每个同学的满意度计算公式:
如果学生有同桌,并且同桌是他/她写的三个名字之一,满意度+1,否则+0。
如果同学座位前面有同学,并且同学是他/她写的3个名字之一,满意度+0.6,否则+0。
如果同学座位后面有同学,并且同学是他/她写的3个名字之一,满意度+0.6,否则+0。
班级整体满意度=每位同学满意度之和。
找到整体班级满意度最高的座位计划排。
难度:60名学生,根据排列组合的知识,总座位数:60!=8320987112741390144276341183223364380754172606361245952449277696409600000000000000
通过穷举枚举,计算复杂度太大。
有什么好的计算方法吗?
我觉得有这样一个工具对老师和学生来说都是很好的。
我真的希望能得到你的帮助。
解决方案
推荐阅读
- javascript - Service Worker 发出重复的获取请求
- python - 在 Python 中使用 pop() 方法时如何检索返回值?
- javascript - 将对象 ID 添加到对象 ID 数组中
- python-3.x - 可以将我的临时文件放入我的应用程序的 tmp/ 目录中吗?
- javascript - 成功事件后如何重新加载数据表?
- c# - 如何将值从用户控件传递到另一个用户控件
- javascript - 尽管正确链接了 HTML,但未定义的错误
- css - 角度无法识别styles.scss,因此角度通知器不起作用
- c++ - 为什么 C++ 单例需要 memory_order_acquire
- react-native - 将原生视频与 expo 结合使用