【本文来自《在外行看来,铁路自主选座非常容易实现,但懂行的程序员才知道这根本做不到》评论区,标题为小编添加】
你把问题想复杂了。下面几个需求,12306是不需要实现的。
(资料图)
1. 把几个座位的不同段行程合成一个完整的全程行程。
2.买一张票包含两个及以上不连续行程。
3.一张票包含两种或以上席位级别。
抛除这几个问题后,其实基本模型比较简单:
一列车座位(铺位)总数,乘降站数。构成了一个基本矩阵,行对应座位,列对应乘降区间。比如,一列500个席位的列车,有二十个站,那么就是十九个乘降区间。这就得到一个500*19的矩阵,每个元素有三个状态:空,锁,占。
那么卖票就是对这9500个元素的操作。每次操作的元素都是同一行(座位)的连续若干元素。
这不就是C语言基本内存分配模型么?一毛一样。一次分配若干长度的一段连续内存,分配成功返回首地址,不成功返回零…
中间不断做统计,统计各区间间存在的对应内存段的数量。这就是对外显示的可购票量。
购票请求经排队后,一个个来,成功就返回成功,失败就返回失败。反正看到显示有票并不保证能买到。
回到选座问题上来。统计区间可售票数的时候,分abcdf位置分别统计,要哪个位置的座就先从这个位置的列表中找一个,没有就找其他表里。哪个位置都没有就是查找失败,没票了。
12306的难度主要在于并发量大,请求分流与排队系统。至于核心分票段模型,别把它想得太复杂了。你们所认为的复杂性,不过是是那三个“不需要实现的问题”带来的。
-
如何选择合适的理财工具?各类理财工具的特点是什么?如何选择合适的理财工具?选择合适的理财产品需要投资者考虑自身投资目标、风险承受能力、产品特点、交易费用等因素,并进行充...
-
什么叫白马股?蓝筹股和白马股哪个好?蓝筹股的价值什么叫白马股?白马股,是指长期绩优、回报率高并具有较高投资价值的股票。一般来说白马股的涨幅是比蓝筹要大的,因为蓝筹太过...
-
301开头的股票是什么股?证券账户开户哪家的费率低?301开头的股票是什么股?301开头的股票代表的是创业板的股票。股票的代码通常由六位数字组成,前三位数字代表的是股票所属的交...
-
企业亏损的原因有哪些?玩短线减少亏损的技巧是什么?企业亏损的原因有哪些?1、客观因素(1)受国际环境影响,出口贸易受挫。(2)国内需求不足造成产品价格下降,影响了企业效益的提...
-
新手理财应该怎么做?适合新手理财的五大投资项目是什么?新手理财应该怎么做?1、测试自己的风险承受能力新手在理财的第一步,应该通过一些交易原件来测试自己的风险承受能力,以及自...
-
如何选择合适的理财工具?各类理财工具的特点是什么?
2023-04-12 08:08:29
-
什么叫白马股?蓝筹股和白马股哪个好?蓝筹股的价值
2023-04-04 09:30:09
-
301开头的股票是什么股?证券账户开户哪家的费率低?
2023-04-04 09:23:47
-
企业亏损的原因有哪些?玩短线减少亏损的技巧是什么?
2023-04-04 09:20:54
-
新手理财应该怎么做?适合新手理财的五大投资项目是什么?
2023-04-04 09:04:31