0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

搶火車票的算法是怎么實(shí)現(xiàn)的

數(shù)據(jù)分析與開發(fā) ? 來源:程序員小飯 ? 作者:飯米粒 ? 2021-11-17 11:31 ? 次閱讀

導(dǎo)讀相信大家應(yīng)該都有搶火車票的經(jīng)驗(yàn),每年年底,這都是一場盛宴。然而你有沒有想過搶火車票這個(gè)算法是怎么實(shí)現(xiàn)的呢?其實(shí)并沒有你想的那么難。

12306搶票算法詳解我們以北京到西安這趟高鐵為例,比如我的路線就是從北京到西安,車上如果只剩最后一張票了,那么如果有其他人,在北京到西安這條路線之間買任何一站,那么我都是買不了票的,換句話說,對于單個(gè)座位來說,必須是起點(diǎn)到終點(diǎn)之間的所有站都沒有人買的話,那么才能被算是有票狀態(tài)。

所以我們可以嘗試用redis的bitmap結(jié)合上位操作來實(shí)現(xiàn)這種場景,以上述北京到西安為例,我們把問題簡化:

比如一個(gè)火車上只有4個(gè)座位;

北京到西安,一共是4站,其實(shí)是三個(gè)區(qū)間的,分別為北京-》石家莊,石家莊-》鄭州,鄭州-》西安。

首先我們給每個(gè)區(qū)間構(gòu)建一個(gè)空位圖(0為有票,1為無票)。接下來,比如有人買了一張從北京到西安的票。買票這個(gè)動作,比如被分配到的座位是編號為1的座位,那么我們直接把北京到西安的所有站,1號座位全部設(shè)置為1

接下來又有人買了一張從石家莊到西安的票。比如這次分配的是座位2,那么我們把石家莊到西安的所有票全部設(shè)置為1就行了

如何知道還剩幾張票?其實(shí)解決這個(gè)問題很簡單,我們直接把上述位圖做一個(gè)或操作就可以了,因?yàn)榛虿僮魇潜仨毴慷紴?,才為0。

或操作結(jié)果有幾個(gè)0,則說明還剩幾張票。

總結(jié)其實(shí)解決這個(gè)問題主要在于位圖的構(gòu)建,因?yàn)榛疖嚻睂τ谀骋粋€(gè)座位來說,只要起點(diǎn)到終點(diǎn)中間某一個(gè)區(qū)間被占用了(置為1),那么整個(gè)座位都是無效的這個(gè)特點(diǎn),很容易想到用或操作的結(jié)果來判斷買票結(jié)果,我們這里只用了4位是為了方便說明問題,實(shí)際中應(yīng)該是火車上有多少座位,位圖的長度就應(yīng)該是多少。

好了,關(guān)于搶票算法我們就介紹到這里,你有沒有g(shù)et到呢?或者你有沒有更好的實(shí)現(xiàn)方法呢?

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4592

    瀏覽量

    92524

原文標(biāo)題:12306 搶票算法被曝光了,居然這么簡單!

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Pure path studio內(nèi)能否自己創(chuàng)建一個(gè)component,來實(shí)現(xiàn)特定的算法,例如LMS算法?

    TLV320AIC3254EVM-K評估模塊, Pure path studio軟件開發(fā)環(huán)境。 問題:1.Pure path studio 內(nèi)能否自己創(chuàng)建一個(gè)component,來實(shí)現(xiàn)特定的算法
    發(fā)表于 11-01 08:25

    位移傳感器在火車軌道上的應(yīng)用

    火車軌道是鐵路交通系統(tǒng)的重要組成部分,監(jiān)測和控制其安全運(yùn)行至關(guān)重要。在火車軌道的管理和維護(hù)中,位移傳感器發(fā)揮著重要作用。這些傳感器將機(jī)械位移轉(zhuǎn)化為電信號,實(shí)現(xiàn)對軌道變形和位移的準(zhǔn)確測量和監(jiān)測。
    的頭像 發(fā)表于 10-09 15:56 ?141次閱讀

    【書籍評測活動NO.46】從算法到電路 | 數(shù)字芯片算法的電路實(shí)現(xiàn)

    《從算法到電路——數(shù)字芯片算法的電路實(shí)現(xiàn)》 是一本深入解讀基礎(chǔ)算法及其電路設(shè)計(jì),以打通算法研發(fā)到數(shù)字IC設(shè)計(jì)的
    發(fā)表于 10-09 13:43

    C加密算法實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《C加密算法實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 09-20 11:10 ?1次下載
    C加密<b class='flag-5'>算法</b>的<b class='flag-5'>實(shí)現(xiàn)</b>

    激光跟蹤儀在火車軌道檢測中的應(yīng)用

    一、背景火車作為中國境內(nèi)的一種交通運(yùn)輸形式,是國家的重要基礎(chǔ)設(shè)施和大眾化的交通工具,在中國綜合交通運(yùn)輸體系中處于骨干地位。隨著技術(shù)發(fā)展,我國火車的運(yùn)行速度也不斷提升,對軌道的穩(wěn)定運(yùn)行提出了新要求
    的頭像 發(fā)表于 09-15 08:03 ?216次閱讀
    激光跟蹤儀在<b class='flag-5'>火車</b>軌道檢測中的應(yīng)用

    行業(yè)智能化的“火車頭效應(yīng)”,由星河AI金融網(wǎng)絡(luò)啟動

    星河AI金融網(wǎng)絡(luò)“通車時(shí)刻”,聽見行業(yè)智能化的“火車頭”轟鳴
    的頭像 發(fā)表于 08-23 09:15 ?2410次閱讀
    行業(yè)智能化的“<b class='flag-5'>火車</b>頭效應(yīng)”,由星河AI金融網(wǎng)絡(luò)啟動

    FPGA能實(shí)現(xiàn)什么樣的算法?

    FPGA功能如此強(qiáng)大,請問用FPGA能實(shí)現(xiàn)或者比較適合實(shí)現(xiàn)什么樣的算法
    發(fā)表于 05-26 20:18

    請問ST25RU3993-HPEV的自適應(yīng)防碰撞算法是在板子上面實(shí)現(xiàn)的嗎?

    請問ST25RU3993-HPEV的自適應(yīng)防碰撞算法是在板子上面實(shí)現(xiàn)的?還是在STSW-ST25RU001上位機(jī)上面實(shí)現(xiàn)的?這個(gè)算法可否提供?STSW-ST25
    發(fā)表于 03-19 06:50

    Camera算法集成實(shí)現(xiàn)指南

    最常見的雙攝算法是雙攝景深算法或者叫雙攝背景虛化算法,除此之外,也有彩色+黑白用于增強(qiáng)夜拍效果的雙攝算法。單幀算法和多幀
    的頭像 發(fā)表于 01-25 15:12 ?1671次閱讀

    簡單分析火車的供電示意圖

    不知你注意沒有,火車的用電都是用一根電線,并不是和家庭用的電一樣是兩根電線。都知道電器要工作必須有兩根電線才行,這樣才能夠構(gòu)成一個(gè)回路,電流才能夠流通。
    的頭像 發(fā)表于 01-03 11:08 ?1844次閱讀
    簡單分析<b class='flag-5'>火車</b>的供電示意圖

    浮點(diǎn)LMS算法的FPGA實(shí)現(xiàn)

    引言 LMS(最小均方)算法因其收斂速度快及算法實(shí)現(xiàn)簡單等特點(diǎn)在自適應(yīng)濾波器、自適應(yīng)天線陣技術(shù)等領(lǐng)域得到了十分廣泛的應(yīng)用。為了發(fā)揮算法的最佳性能,必須采用具有大動態(tài)范圍及運(yùn)算精度的浮點(diǎn)
    的頭像 發(fā)表于 12-21 16:40 ?702次閱讀

    詳解從均值濾波到非局部均值濾波算法的原理及實(shí)現(xiàn)方式

    圖像降噪處理主要分為2D(空域)與3D降噪(時(shí)域/多幀),而2D降噪由于相關(guān)的實(shí)現(xiàn) 算法 豐富,效果各異,初學(xué)入門有著豐富的研究價(jià)值。理解2D降噪算法的流程,也對其他的增強(qiáng)算法有很大的
    的頭像 發(fā)表于 12-19 16:30 ?1078次閱讀
    詳解從均值濾波到非局部均值濾波<b class='flag-5'>算法</b>的原理及<b class='flag-5'>實(shí)現(xiàn)</b>方式

    SD NAND在火車軌道交通上的應(yīng)用

    SDNAND和火車軌道交通火車軌道交通需要存儲卡來存儲監(jiān)控?cái)z像頭捕獲的視頻和圖像數(shù)據(jù),和存儲乘客信息、車輛地圖、娛樂內(nèi)容和其他與乘客體驗(yàn)相關(guān)的數(shù)據(jù),也可用于存儲車載系統(tǒng)的日志和診斷信息。MK-米客方
    的頭像 發(fā)表于 12-14 14:31 ?560次閱讀
    SD NAND在<b class='flag-5'>火車</b>軌道交通上的應(yīng)用

    sigmastudio有沒有語音增強(qiáng)的算法或組合實(shí)現(xiàn)功能?

    在ADAU1401芯片下,有沒有具體實(shí)現(xiàn)語音信號增強(qiáng)的算法實(shí)現(xiàn)
    發(fā)表于 11-29 07:55

    PID算法的代碼實(shí)現(xiàn)

    PID算法的代碼實(shí)現(xiàn) 舵機(jī)控制 在對舵機(jī)的控制中,我采用的是位置式PD算法。 將左右電感的偏差值賦給error,再代入公式進(jìn)行解算,最后傳給舵機(jī)輸出子函數(shù),控制舵機(jī)正確打角。 void
    的頭像 發(fā)表于 11-28 15:57 ?619次閱讀