更新
This commit is contained in:
1 parent
5cd551a08e
commit
40cde540d6
33 files changed
+547
-319
No files matched your search
@@ -1,9 +1,12 @@
|
||||
---
|
||||
title: 演唱会随机选座解题思路
|
||||
tags: []
|
||||
id: '346'
|
||||
categories:
|
||||
- - 分享
|
||||
- 分享
|
||||
tags:
|
||||
- 随机选座
|
||||
- 解题
|
||||
- 思路
|
||||
date: 2018-12-16 14:07:46
|
||||
---
|
||||
|
||||
@@ -17,7 +20,8 @@ date: 2018-12-16 14:07:46
|
||||
|
||||
首先定义座位信息
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
let item = {
|
||||
index: 0, //下标(索引)
|
||||
group: 0, //分组
|
||||
@@ -30,7 +34,8 @@ let item = {
|
||||
|
||||
把座位和排数用数组保存起来
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
let front = 2; //前排座位数
|
||||
let back = 10; //后排座位数
|
||||
let .gap = 2; //每行座位数差
|
||||
@@ -61,7 +66,8 @@ for (let g = 0; g < this.group; g++) {
|
||||
|
||||
把符合条件的座位排数筛选出来(即有足够连号的空位的排数)
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
suitableRows(length) {//length为买票的张数
|
||||
let haveSeatRows = [];
|
||||
this.rows.forEach((list) => {
|
||||
@@ -86,7 +92,8 @@ suitableRows(length) {//length为买票的张数
|
||||
|
||||
最后把从筛选出来的排数中选出座位
|
||||
|
||||
```
|
||||
```
|
||||
|
||||
let index = Math.floor(Math.random() * haveSeats.length);
|
||||
let places = this.selectPlace(haveSeats[index], length);
|
||||
selectPlace(list, length) {
|
||||
@@ -119,4 +126,4 @@ let places = this.selectPlace(haveSeats[index], length);
|
||||
|
||||
总结起来,基本思路就是把符合条件的行数收集起来,再从所有行数中随机选出一行,顺序出票,从而在均衡分布与高利用率之间取一个平衡点。
|
||||
|
||||
[demon实例,点击查看!](https://demo.dengtongyu.com/pages/20181112o4/)
|
||||
[demon实例,点击查看!](https://demo.dengtongyu.com/pages/20181112o4/)
|
||||
Reference in new issue
Block a user