日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于12306火车票销售的简单思考

發(fā)布時間:2024/1/18 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于12306火车票销售的简单思考 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

昨天,大家在群里討論了下12306的售票系統(tǒng)的算法問題,@北京-一葦渡江11同學和我提了要最小粒度鎖,我給了一個相對簡單的數(shù)據(jù)模型,不曉得可行性如何,歡迎大家拍磚。


我們假定有一趟列車K200,途徑10個站點,我們分別用數(shù)字1,2...10來表示每個站點,這趟車我們假定只有10個座位,用A,B,C字母代替,其中規(guī)定,A座位只能在1號站點賣,但是終點隨意,且到達終點被釋放后可以給后面任意一個站點銷售,B只能給2好站點賣,到終點后的策略和A座一個道理!以此類推!


模型如下:

12345678910
ABCDEFGHIJ

這個時候我們找個數(shù)據(jù)模型來表示余票信息,

模型需要標記的是車次,座位,起始站點,終點站,買賣標記,站內票(就是分配給該站,不得在其它站點賣),那么鐵道部開始放票的初始化余票信息為:

車次座位起點站終點站買賣標記站內票
K200A111未賣
K200
B211未賣
K200
C311未賣
K200
D411未賣
K200
E511未賣
K200
F611未賣
K200
G711未賣
K200
H811未賣
K200
I911未賣
K200
J1011未賣

現(xiàn)在我們假定有個人買一張從1站點到4站點的人,現(xiàn)在1號站點沒票,四號站點有了兩張票,其中下車的人的票用字母A1表示,但是因為后面的5,6,7,8,9,10號站點都可以賣票A1,所以實際上現(xiàn)在4以后的站點都變成了有兩張票,我們的表格數(shù)據(jù)變成如下:

車次座位起點站終點站買賣標記站內票
K200A14已賣
K200A411未賣
K200
B211未賣
K200
C311未賣
K200
D411未賣
K200
E511未賣
K200
F611未賣
K200
G711未賣
K200
H811未賣
K200
I911未賣
K200
J1011未賣


那現(xiàn)在從上面的表格看出,1號站點已經沒有票了,一個站點的余票信息是,如果非站內票,那么起始站點只要小于等于本站就行,如果站內票,則起始站點必須等于本站!所以可以看到2,3是還有一張票,4-10有兩張票!

如果現(xiàn)在有個用戶購買了6-8的票,一般是站內票優(yōu)先,因為只能在該站賣,所以F票賣出,在8下車后變成了F1,這個時候8和9和10都有三張票。那要是再來一個用戶需要買6-8的票,這個時候只能出A1的票,這樣A座位就變成在4-6可以賣,8-10也可以賣!數(shù)據(jù)變成了如下:

車次座位起點站終點站買賣標記站內票
K200A14已賣
K200A46未賣
K200A68已賣
K200A811未賣
K200
B211未賣
K200
C311未賣
K200
D411未賣
K200
E511未賣
K200
F68已賣
K200
F811未賣
K200
G711未賣
K200
H811未賣
K200
I911未賣
K200
J1011未賣



當然還有一部分票可以賣,就是各個起點站之前的這部分票,可以看做短途票。下面的這部分票務購買和上面的邏輯一樣!

車次座位起點站終點站買賣標記站內票
K200B12未賣
K200C13未賣
K200D14未賣
K200E15未賣
K200F16未賣
K200G17未賣
K200H18未賣
K200I19未賣
K200J110未賣

以上就是個人的粗略想法,歡迎大家拍磚!

轉載于:https://blog.51cto.com/ginkuing/1384547

總結

以上是生活随笔為你收集整理的关于12306火车票销售的简单思考的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。