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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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),每年年底,這都是一場(chǎng)盛宴。然而你有沒有想過搶火車票這個(gè)算法是怎么實(shí)現(xiàn)的呢?其實(shí)并沒有你想的那么難。

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

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

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

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

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

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

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

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

總結(jié)其實(shí)解決這個(gè)問題主要在于位圖的構(gòu)建,因?yàn)榛疖嚻睂?duì)于某一個(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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4576

    瀏覽量

    92341

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    【書籍評(píng)測(cè)活動(dòng)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 ?0次下載
    C加密<b class='flag-5'>算法</b>的<b class='flag-5'>實(shí)現(xiàn)</b>

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

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

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

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

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

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

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

    請(qǐng)問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 ?1543次閱讀

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

    不知你注意沒有,火車的用電都是用一根電線,并不是和家庭用的電一樣是兩根電線。都知道電器要工作必須有兩根電線才行,這樣才能夠構(gòu)成一個(gè)回路,電流才能夠流通。
    的頭像 發(fā)表于 01-03 11:08 ?1509次閱讀
    簡單分析<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ā)揮算法的最佳性能,必須采用具有大動(dòng)態(tài)范圍及運(yùn)算精度的浮點(diǎn)
    的頭像 發(fā)表于 12-21 16:40 ?663次閱讀

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

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

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

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

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

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

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

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

    基于FPGA的窄帶干擾抑制算法實(shí)現(xiàn)方案

    電子發(fā)燒友網(wǎng)站提供《基于FPGA的窄帶干擾抑制算法實(shí)現(xiàn)方案.pdf》資料免費(fèi)下載
    發(fā)表于 11-07 09:29 ?0次下載
    基于FPGA的窄帶干擾抑制<b class='flag-5'>算法</b>的<b class='flag-5'>實(shí)現(xiàn)</b>方案