提高火车车座利用率(一)初步思路

 

提高火车车座利用率(-)

现实场景

L君乘火车从A地赶往B,在车上发现有很多空位。而在他买票时,售票员明确告诉他只有站票。L君暗骂一声:破售票系统,有座位没坐票。

文章来源

L君是一个程序员,写2两年没人用的代码,没有获得成就感,于是动了下念头,想解决上面的问题。

如果解决上面的问题:

个人:获得成就感,而且买到坐票的几率增加

吹牛:提高客运量,毕竟火车的座位与站票有限制,哈哈

解决思路

数据结构:选择二维数组,可以很好的映射火车站点与座位。二维数组,以站点为列,以座位为行。座位闲置:0,座位占用:1。二维数组初始值为0

假设火车经过4站,有6张座位。 

int[,] seatArray = new int[64];

 

购票算法:遍历数组所有行,如果站点对应的列之间皆为0,有座!

 

站1

站2

站3

站4

座1

0

1

1

0

座2

1

1

0

0

座3

1

1

1

1

座4

0

0

0

0

座5

0

0

0

0

座6

0

0

0

0

 

        /// <summary>
        
/// 检座
        
/// </summary>
        
/// <param name="Start">登车站-标示</param>
        
/// <param name="End">下车站-标示</param>
        
/// <returns></returns>
        public List<int> CheckSeats(int Start, int End)
        {
            
//存放座号
            List<int> temp = new List<int>();
            
//检测每一行数据的Start ~ End列
            for (int row = 0; row <= this.seats - 1; row++)
            {
                
bool flag = true;
                
for (int column = Start; column <= End-1; column++)
                {
                    
if (seatArray[row,column] == 1)
                    {
                        flag 
= false;
                        
break;
                    }
                }

                
if (flag)
                {
                    temp.Add(row);
                }
            }
            
return temp;
        }

 

 

如上图所示,假设L君,从站点3~站4,则候选车票有4张:座2,4,5,6

下一章描述,计划经济下,每一个站点限量供应车票,怎么提高利用率

 

posted @ 2010-12-22 10:19  树上有鱼  阅读(373)  评论(0)    收藏  举报