本發(fā)明涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種對(duì)象的匹配方法和裝置。
背景技術(shù):
隨著科技的不斷發(fā)展,網(wǎng)絡(luò)游戲、金融(如股票、基金等)等越來(lái)越受到人們的歡迎和認(rèn)可,但是在這些領(lǐng)域中普遍存在如下問(wèn)題:在確定相匹配的兩個(gè)對(duì)象(如游戲?qū)ο?、金融產(chǎn)品等)時(shí),由于需要遍歷所有對(duì)象中任意的兩兩組合,所以效率較低。
例如,在目前的網(wǎng)絡(luò)游戲中,pvp(playervsplayer,對(duì)戰(zhàn)模式)是一種比較流行的玩法模式,在pvp對(duì)戰(zhàn)模式下,服務(wù)器會(huì)從多個(gè)報(bào)名的隊(duì)伍中,為進(jìn)行對(duì)戰(zhàn)的兩個(gè)陣營(yíng)分別選擇一個(gè)隊(duì)伍(即游戲?qū)ο?,從而使得對(duì)戰(zhàn)的兩個(gè)陣營(yíng)的能夠進(jìn)行對(duì)戰(zhàn)。目前在進(jìn)行隊(duì)伍對(duì)戰(zhàn)匹配時(shí),為了得到戰(zhàn)斗力相匹配的對(duì)戰(zhàn)雙方(即游戲?qū)ο?,首先將所有的隊(duì)伍按一定的順序排列在一個(gè)隊(duì)列中,然后通過(guò)遍歷隊(duì)列中任意的兩兩組合,從隊(duì)列中選擇戰(zhàn)斗力相匹配的對(duì)戰(zhàn)的兩個(gè)陣營(yíng)(即兩個(gè)游戲?qū)ο?,兩個(gè)陣營(yíng)的隊(duì)伍總?cè)藬?shù)均滿足一定數(shù)量要求。
類似地,在目前的金融活動(dòng)中,為了得到兩種在收益、風(fēng)險(xiǎn)等方面相當(dāng)?shù)慕鹑诋a(chǎn)品的組合方式,也需要遍歷所有的組合方式中的任意兩種組合方式,通過(guò)比較確定出兩種在收益、風(fēng)險(xiǎn)等屬性上相當(dāng)?shù)慕鹑诋a(chǎn)品的組合方式。
針對(duì)相關(guān)技術(shù)中在確定相互匹配的對(duì)象時(shí)效率較低的技術(shù)問(wèn)題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種對(duì)象的匹配方法和裝置,以至少解決相關(guān)技術(shù)中在確定相互匹配的對(duì)象時(shí)效率較低的技術(shù)問(wèn)題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種對(duì)象的匹配方法,該匹配方法包括:接收到目標(biāo)指令,目標(biāo)指令用于指示獲取相互匹配的兩個(gè)對(duì)象;獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,第一集合用于保存預(yù)先創(chuàng)建的標(biāo)識(shí)組,第一集合中的每個(gè)標(biāo)識(shí)組包括至少一個(gè)標(biāo)識(shí);判斷第二集合中是否存在第二對(duì)象,第二對(duì)象的目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi),第二集合用于保存待匹配的對(duì)象,每個(gè)待匹配的對(duì)象用于表示多個(gè)第二標(biāo)識(shí)組,待匹配的對(duì)象表示的多個(gè)第二標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量與第一對(duì)象表示的多個(gè)第一標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量相同;在判斷出第二集合中存在第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種對(duì)象的匹配裝置,該匹配裝置包括:接收單元,用于接收到目標(biāo)指令,其中,目標(biāo)指令用于指示獲取相互匹配的兩個(gè)對(duì)象;第一獲取單元,用于獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,其中,第一集合用于保存預(yù)先創(chuàng)建的標(biāo)識(shí)組,第一集合中的每個(gè)標(biāo)識(shí)組包括至少一個(gè)標(biāo)識(shí);第一判斷單元,用于判斷第二集合中是否存在第二對(duì)象,其中,第二對(duì)象的目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi),第二集合用于保存待匹配的對(duì)象,每個(gè)待匹配的對(duì)象用于表示多個(gè)第二標(biāo)識(shí)組,待匹配的對(duì)象表示的多個(gè)第二標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量與第一對(duì)象表示的多個(gè)第一標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量相同;第一匹配單元,用于在判斷出第二集合中存在第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象。
在本發(fā)明實(shí)施例中,在接收到用于指示獲取相互匹配的兩個(gè)對(duì)象的目標(biāo)指令時(shí),獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,在判斷出第二集合中存在與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象,對(duì)于每一個(gè)新創(chuàng)建的對(duì)象,只需要與第二集合中的對(duì)象逐一比對(duì)即可找到相互匹配的對(duì)象,而不用將其放入第二集合中再對(duì)第二集合中的對(duì)象進(jìn)行兩兩匹配,可以解決相關(guān)技術(shù)中在確定相互匹配的對(duì)象時(shí)效率較低的技術(shù)問(wèn)題,進(jìn)而達(dá)到提高匹配效率的技術(shù)效果。
附圖說(shuō)明
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實(shí)施例的對(duì)象的匹配方法的硬件環(huán)境的示意圖;
圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的對(duì)象的匹配方法的流程圖;
圖3是根據(jù)本發(fā)明實(shí)施例的一種可選的對(duì)象的匹配方法的流程圖;
圖4是根據(jù)本發(fā)明實(shí)施例的一種可選的對(duì)象的匹配方法的流程圖;
圖5是根據(jù)本發(fā)明實(shí)施例的可選的統(tǒng)計(jì)指標(biāo)的示意圖;
圖6是根據(jù)本發(fā)明實(shí)施例的一種可選的對(duì)象的匹配裝置的示意圖;
圖7是根據(jù)本發(fā)明實(shí)施例的一種可選的對(duì)象的匹配裝置的示意圖;以及
圖8是根據(jù)本發(fā)明實(shí)施例的一種終端的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說(shuō)明的是,本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語(yǔ)“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過(guò)程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒(méi)有清楚地列出的或?qū)τ谶@些過(guò)程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實(shí)施例1
根據(jù)本發(fā)明實(shí)施例,提供了一種對(duì)象的匹配方法的方法實(shí)施例。
可選地,在本實(shí)施例中,上述對(duì)象的匹配方法可以應(yīng)用于如圖1所示的由服務(wù)器102和終端104所構(gòu)成的硬件環(huán)境中。如圖1所示,服務(wù)器102通過(guò)網(wǎng)絡(luò)與終端104進(jìn)行連接,上述網(wǎng)絡(luò)包括但不限于:廣域網(wǎng)、城域網(wǎng)或局域網(wǎng),終端104并不限定于pc、手機(jī)、平板電腦等。本發(fā)明實(shí)施例的對(duì)象的匹配方法可以由服務(wù)器102來(lái)執(zhí)行,也可以由終端104來(lái)執(zhí)行,還可以是由服務(wù)器102和終端104共同執(zhí)行。其中,終端104執(zhí)行本發(fā)明實(shí)施例的對(duì)象的匹配方法也可以是由安裝在其上的客戶端來(lái)執(zhí)行。
下面以在服務(wù)器上運(yùn)行該方法為例進(jìn)行詳細(xì)說(shuō)明:
圖2是根據(jù)本發(fā)明實(shí)施例的一種可選的對(duì)象的匹配方法的流程圖,如圖2所示,該方法可以包括以下步驟:
步驟s202,接收到目標(biāo)指令,目標(biāo)指令用于指示獲取相互匹配的兩個(gè)對(duì)象;
步驟s204,獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,第一集合用于保存預(yù)先創(chuàng)建的標(biāo)識(shí)組,第一集合中的每個(gè)標(biāo)識(shí)組包括至少一個(gè)標(biāo)識(shí);
步驟s206,判斷第二集合中是否存在第二對(duì)象,第二對(duì)象的目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi),第二集合用于保存待匹配的對(duì)象,每個(gè)待匹配的對(duì)象用于表示多個(gè)第二標(biāo)識(shí)組,待匹配的對(duì)象表示的多個(gè)第二標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量與第一對(duì)象表示的多個(gè)第一標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量相同;
步驟s208,在判斷出第二集合中存在第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象。
通過(guò)上述步驟s202至步驟s208,在接收到用于指示獲取相互匹配的兩個(gè)對(duì)象的目標(biāo)指令時(shí),獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,在判斷出第二集合中存在與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象,對(duì)于每一個(gè)創(chuàng)建的對(duì)象,只需要與第二集合中的對(duì)象逐一比對(duì)即可找到相互匹配的對(duì)象,而不用將其放入第二集合中再對(duì)第二集合中的對(duì)象進(jìn)行兩兩匹配,可以解決相關(guān)技術(shù)中在確定相互匹配的對(duì)象時(shí)效率較低的技術(shù)問(wèn)題,進(jìn)而達(dá)到提高匹配效率的技術(shù)效果。
本申請(qǐng)的上述方法可以應(yīng)用于需要進(jìn)行對(duì)象匹配的領(lǐng)域,如游戲領(lǐng)域、金融領(lǐng)域等。下面分別進(jìn)行說(shuō)明:
(一)對(duì)于金融領(lǐng)域,下面結(jié)合圖2進(jìn)行說(shuō)明
在步驟s202提供的技術(shù)方案中,在相關(guān)技術(shù)中,在給定一定金融產(chǎn)品的組合方式(即第一對(duì)象)時(shí),需要進(jìn)行類推得到某些屬性類似的其它組合方式,具體是以給出的第一對(duì)象作為參考,得到與第一對(duì)象在收益、風(fēng)險(xiǎn)等方面相當(dāng)?shù)慕鹑诋a(chǎn)品的組合方式(即第二對(duì)象),并推薦給用戶,上述的目標(biāo)指令即用于觸發(fā)執(zhí)行上述的得到相互匹配的兩個(gè)對(duì)象的指令。
在步驟s204提供的技術(shù)方案中,第一集合用于保存預(yù)先創(chuàng)建的標(biāo)識(shí)組,標(biāo)識(shí)組中的標(biāo)識(shí)即基金、股票等金融產(chǎn)品的標(biāo)識(shí),標(biāo)識(shí)組相當(dāng)于一個(gè)較小的組合,其中包括的金融產(chǎn)品的組合往往在1到5個(gè)之間,每個(gè)標(biāo)識(shí)組所標(biāo)識(shí)的金融產(chǎn)品優(yōu)選為同一類金融產(chǎn)品(如基金或股票等),也可以為不同類金融產(chǎn)品的組合;第一標(biāo)識(shí)組即被選出的一個(gè)較小的金融產(chǎn)品組合,被選出的多個(gè)第一標(biāo)識(shí)組被即為第一對(duì)象,第一對(duì)象相當(dāng)于一個(gè)復(fù)合的更大的金融產(chǎn)品組合方式。
上述的獲取第一集合中的多個(gè)第一標(biāo)識(shí)組相當(dāng)于選出多個(gè)較小的金融產(chǎn)品的組合方式,創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象相當(dāng)于將選取出的多個(gè)較小的金融產(chǎn)品的組合方式組合在一起,形成更為復(fù)雜的第一對(duì)象,也即用于參考的對(duì)象。
在步驟s206提供的技術(shù)方案中,第二集合中的對(duì)象也相當(dāng)于對(duì)多個(gè)較小的金融產(chǎn)品的組合方式的進(jìn)一步組合,該對(duì)象所表示的每個(gè)第二標(biāo)識(shí)組相當(dāng)于一個(gè)較小的金融產(chǎn)品的組合方式,第二標(biāo)識(shí)組中的金融產(chǎn)品的數(shù)量與第一標(biāo)識(shí)組中金融產(chǎn)品的數(shù)量相同。
判斷第二集合中是否存在第二對(duì)象,即判斷第二集合中是否存在與第一對(duì)象在目標(biāo)屬性(如收益、風(fēng)險(xiǎn)等屬性中的一個(gè)或多個(gè))上相匹配的對(duì)象,即以第一對(duì)象為參考,選出與其在收益、風(fēng)險(xiǎn)等方面較為接近的對(duì)象。
在步驟s208提供的技術(shù)方案中,在判斷出第二集合中存在第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象,如在專家等給出一個(gè)投資方式(即第一對(duì)象)的情況下,通過(guò)匹配計(jì)算得到與之在收益、風(fēng)險(xiǎn)等方面相當(dāng)?shù)牡诙?duì)象,以便于將第二對(duì)象和第一對(duì)象一起推薦給用戶購(gòu)買。
(二)對(duì)于游戲領(lǐng)域,下面結(jié)合圖2進(jìn)行說(shuō)明
第一集合即用于保存待組成戰(zhàn)團(tuán)的戰(zhàn)隊(duì)的集合,集合中的每個(gè)標(biāo)識(shí)組相當(dāng)于一個(gè)戰(zhàn)隊(duì),標(biāo)識(shí)組中的標(biāo)識(shí)相當(dāng)于同一戰(zhàn)隊(duì)中帳號(hào)的標(biāo)識(shí)(如帳號(hào)本身、昵稱、標(biāo)識(shí)字符串等);創(chuàng)建的用于表示多個(gè)第一標(biāo)識(shí)組(戰(zhàn)隊(duì))的第一對(duì)象即一個(gè)戰(zhàn)團(tuán)(記為第一戰(zhàn)團(tuán))。
第二集合中保存的對(duì)象為待匹配的戰(zhàn)團(tuán),待匹配的戰(zhàn)團(tuán)也由多個(gè)戰(zhàn)隊(duì)(即第二標(biāo)識(shí)組)組成,第二戰(zhàn)團(tuán)中帳號(hào)數(shù)量(即標(biāo)識(shí)數(shù)量)與第一戰(zhàn)團(tuán)中帳號(hào)數(shù)量相同。
目標(biāo)屬性可以為特定的一個(gè)屬性,也可以是多個(gè)屬性的組合,所涉及的屬性包括但不局限于進(jìn)攻屬性(如進(jìn)攻武器、進(jìn)攻武器的熟練度、經(jīng)驗(yàn)、敏捷度、智力等)、防御屬性(如防御武器、防御武器的熟練度、恢復(fù)能力、治療能力等)等。
上述的戰(zhàn)隊(duì)由一個(gè)或多個(gè)玩家(即帳號(hào),如1到5個(gè))組成;戰(zhàn)團(tuán)由多個(gè)戰(zhàn)隊(duì)組成,每個(gè)戰(zhàn)團(tuán)的玩家數(shù)目固定(如10個(gè));戰(zhàn)團(tuán)組成是指挑選多個(gè)戰(zhàn)隊(duì)組成一個(gè)戰(zhàn)團(tuán);戰(zhàn)團(tuán)匹配是指匹配戰(zhàn)力值接近的兩個(gè)戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗。
在步驟s202提供的技術(shù)方案中,考慮到游戲中存在多個(gè)戰(zhàn)隊(duì)組成大規(guī)模戰(zhàn)團(tuán)并進(jìn)行匹配戰(zhàn)斗的需要,本申請(qǐng)的方法可用于戰(zhàn)團(tuán)快速組成、匹配,并且使匹配的兩方戰(zhàn)團(tuán)的戰(zhàn)斗力盡可能接近,同時(shí),盡量縮短玩家平均等待匹配的時(shí)間,減少等待時(shí)間過(guò)長(zhǎng)的玩家的數(shù)目。上述的目標(biāo)指令即用于觸發(fā)戰(zhàn)團(tuán)快速組成、匹配的指令,所匹配的對(duì)象即戰(zhàn)團(tuán)。
在步驟s204提供的技術(shù)方案中,獲取第一集合中的多個(gè)第一標(biāo)識(shí)組的目的在于找到總的帳號(hào)數(shù)量為預(yù)設(shè)數(shù)量的多個(gè)戰(zhàn)隊(duì)(即第一標(biāo)識(shí)組),以組成第一戰(zhàn)團(tuán)。具體可以使用如下兩種方式進(jìn)行戰(zhàn)團(tuán)組建:
(1)方式一,直接在第一集合中搜索
可選地,第一集合可采用雙向鏈表存儲(chǔ)方式,第一集合中的每個(gè)標(biāo)識(shí)組(即戰(zhàn)隊(duì))保存在雙向鏈表中的一個(gè)節(jié)點(diǎn)上。
采用方式一組建戰(zhàn)團(tuán)時(shí),遍歷第一集合中的各個(gè)戰(zhàn)隊(duì),按照預(yù)設(shè)數(shù)量查找雙向鏈表中的多個(gè)節(jié)點(diǎn),查詢到總的帳號(hào)數(shù)量為預(yù)設(shè)數(shù)量的多個(gè)戰(zhàn)隊(duì),并將查找到的多個(gè)戰(zhàn)隊(duì)組成戰(zhàn)團(tuán)。
由于第一集合中的帳號(hào)數(shù)量不定,可能是預(yù)設(shè)數(shù)量的整數(shù)倍,也可能不是預(yù)設(shè)數(shù)量的整數(shù)倍,對(duì)于后者,則存在始終不可能和其余戰(zhàn)隊(duì)組成戰(zhàn)團(tuán)的隊(duì)伍,而在采用方式一進(jìn)行遍歷搜索時(shí),每次搜索均會(huì)對(duì)所有隊(duì)伍進(jìn)行搜索,從而影響了搜索的效率,為了提高戰(zhàn)團(tuán)組建的效率,本申請(qǐng)還提供了方式二進(jìn)行戰(zhàn)團(tuán)組建。
(2)方式二,刪除多余的戰(zhàn)隊(duì)
在獲取第一集合中的多個(gè)第一標(biāo)識(shí)組時(shí),先考慮第一集合中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量(也即帳號(hào)數(shù)量),在第一集合中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量不為預(yù)設(shè)數(shù)量的整數(shù)倍的情況下,刪除第一集合中標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組,目標(biāo)數(shù)量為第一集合中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量與預(yù)設(shè)數(shù)量進(jìn)行取余運(yùn)算后的余數(shù),通過(guò)該步驟可以保證第一集合中的帳號(hào)數(shù)量始終是預(yù)設(shè)數(shù)量的整數(shù)倍,也即每個(gè)標(biāo)識(shí)組(戰(zhàn)隊(duì))都是需要被用到的,從而避免了對(duì)不能組成戰(zhàn)團(tuán)的戰(zhàn)隊(duì)的搜索,提高了戰(zhàn)團(tuán)的組成效率。
需要說(shuō)明的是,刪除第一集合中標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組是指刪除總的帳號(hào)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組(即戰(zhàn)隊(duì)),即按照目標(biāo)數(shù)量進(jìn)行刪除,可以刪除一個(gè)或者多個(gè)戰(zhàn)隊(duì),只要這一個(gè)或多個(gè)戰(zhàn)隊(duì)的總標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量即可。
在第一集合中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量為預(yù)設(shè)數(shù)量的整數(shù)倍的情況下,或在刪除第一集合中標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組之后,按照預(yù)設(shè)數(shù)量查找雙向鏈表中的多個(gè)第一標(biāo)識(shí)組,查找到的多個(gè)第一標(biāo)識(shí)組中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量為預(yù)設(shè)數(shù)量。
可選地,在刪除第一集合中標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組之后,刪除雙向鏈表中的第一節(jié)點(diǎn),并建立與第一節(jié)點(diǎn)相鄰的兩個(gè)第二節(jié)點(diǎn)之間的相鄰關(guān)系,即將第一節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)(記為第三節(jié)點(diǎn))的用于指向第三節(jié)點(diǎn)的后一節(jié)點(diǎn)的指針,修改為指向第一節(jié)點(diǎn)的后一節(jié)點(diǎn)(記為第四節(jié)點(diǎn)),將第四節(jié)點(diǎn)的用于指向前一節(jié)點(diǎn)的指針,修改為指向第三節(jié)點(diǎn),第一節(jié)點(diǎn)為雙向鏈表中用于保存被刪除的標(biāo)識(shí)組的節(jié)點(diǎn)。
在上述實(shí)施例中,游戲客戶端的玩家隊(duì)伍發(fā)出組團(tuán)戰(zhàn)斗請(qǐng)求,后臺(tái)服務(wù)器收到請(qǐng)求后,進(jìn)行戰(zhàn)團(tuán)組成和戰(zhàn)團(tuán)匹配。為了快速的完成后臺(tái)響應(yīng)過(guò)程,本申請(qǐng)使用基于雙向鏈表的深度優(yōu)先搜索算法,雙向鏈表中存放所有待選的戰(zhàn)隊(duì),戰(zhàn)團(tuán)組成過(guò)程中深度優(yōu)先搜索戰(zhàn)隊(duì)鏈表,在戰(zhàn)團(tuán)組成后,在鏈表中刪除該戰(zhàn)團(tuán)中的所有戰(zhàn)隊(duì),選用雙向鏈表,便于在戰(zhàn)團(tuán)組成過(guò)程中頻繁地接收新的戰(zhàn)隊(duì)并刪除已組成戰(zhàn)團(tuán)的戰(zhàn)隊(duì),雙向鏈表十分適合這樣頻繁的插入和刪除操作,能夠提高組成戰(zhàn)團(tuán)的效率。
在步驟s206提供的技術(shù)方案中,游戲中需要戰(zhàn)隊(duì)之間進(jìn)行匹配并戰(zhàn)斗的情景,本申請(qǐng)通過(guò)判斷第二集合中是否存在第二對(duì)象等方式來(lái)查找與第一對(duì)象匹配的對(duì)象,即查找與第一戰(zhàn)團(tuán)匹配的戰(zhàn)團(tuán),對(duì)于每個(gè)新創(chuàng)建的第一戰(zhàn)團(tuán),主要包括以下幾次匹配機(jī)會(huì),以將多個(gè)戰(zhàn)隊(duì)組成固定人數(shù)的戰(zhàn)團(tuán),并盡量縮短玩家平均等待匹配的時(shí)間,減少等待時(shí)間過(guò)長(zhǎng)的玩家的數(shù)目,并盡可能匹配戰(zhàn)力值接近的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗。
(1)第一次匹配
在第一次匹配的過(guò)程中,判斷第二集合中是否存在第二對(duì)象可以通過(guò)如下方式實(shí)現(xiàn):獲取第一對(duì)象(第一戰(zhàn)團(tuán))的目標(biāo)屬性值(如進(jìn)攻屬性和/或防御屬性的屬性值)和第二集合中任一對(duì)象(即待匹配戰(zhàn)團(tuán))的目標(biāo)屬性值(如進(jìn)攻屬性和/或防御屬性的屬性值),第一對(duì)象的目標(biāo)屬性值為多個(gè)第一標(biāo)識(shí)組中所有標(biāo)識(shí)在目標(biāo)屬性上的屬性值的平均值(也即是多個(gè)第一戰(zhàn)隊(duì)中每個(gè)帳號(hào)在進(jìn)攻屬性或防御屬性的屬性值的平均值),任一對(duì)象的目標(biāo)屬性值為任一對(duì)象表示的多個(gè)第二標(biāo)識(shí)組中所有標(biāo)識(shí)在目標(biāo)屬性上的屬性值的平均值(也即是多個(gè)第二戰(zhàn)隊(duì)中每個(gè)帳號(hào)在進(jìn)攻屬性或防御屬性的屬性值的平均值);判斷第一對(duì)象的目標(biāo)屬性值與任一對(duì)象的目標(biāo)屬性值之間的差值是否在預(yù)設(shè)范圍內(nèi),目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的任一對(duì)象為第二對(duì)象,在第一次匹配時(shí),若存在第二戰(zhàn)團(tuán),則相當(dāng)于第一次匹配成功,由第二戰(zhàn)團(tuán)和第一戰(zhàn)團(tuán)進(jìn)行團(tuán)戰(zhàn)。
可選地,在判斷第二集合中是否存在第二對(duì)象之后,在判斷出第二集合中不存在與第一對(duì)象匹配的第二對(duì)象的情況下,將第一對(duì)象作為一個(gè)待匹配的對(duì)象保存至第二集合中,以與后續(xù)創(chuàng)建的對(duì)象進(jìn)行匹配。
對(duì)于創(chuàng)建的第一對(duì)象而言,若沒(méi)有匹配到合適的第二對(duì)象,則此次匹配終止,第一對(duì)象被放入第二集合中。
對(duì)于第二集合而言,保存的對(duì)象均為創(chuàng)建之后在第一次匹配(與第二集合中的對(duì)象進(jìn)行匹配)時(shí)未找到匹配對(duì)象的對(duì)象。
(2)第二次匹配
可選地,為了保證對(duì)每個(gè)新創(chuàng)建的第一對(duì)象(第一戰(zhàn)團(tuán))能夠匹配到對(duì)應(yīng)的對(duì)象(戰(zhàn)團(tuán)),對(duì)于被保存在第二集合中的第一對(duì)象,還存在第二次匹配到對(duì)應(yīng)的對(duì)象的機(jī)會(huì)。
在將第一對(duì)象作為一個(gè)待匹配的對(duì)象保存至第二集合中之后,獲取第一集合中的多個(gè)第三標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第三標(biāo)識(shí)組的第三對(duì)象(也即在創(chuàng)建第一戰(zhàn)團(tuán)之后新創(chuàng)建的第三戰(zhàn)團(tuán)),第三標(biāo)識(shí)組與第一標(biāo)識(shí)組為不同的標(biāo)識(shí)組;判斷第三對(duì)象(第三戰(zhàn)團(tuán))的目標(biāo)屬性值與第二集合中的第一對(duì)象(第一戰(zhàn)團(tuán))的目標(biāo)屬性值之間的差值是否在預(yù)設(shè)范圍內(nèi);在判斷出第三對(duì)象的目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的情況下,將第一對(duì)象和第三對(duì)象作為相互匹配的兩個(gè)對(duì)象,也即第二次匹配成功匹配到合適的戰(zhàn)團(tuán)。
對(duì)于每一個(gè)在創(chuàng)建第一戰(zhàn)團(tuán)之后創(chuàng)建的第三戰(zhàn)團(tuán),都需要與第二集合中的第一戰(zhàn)團(tuán)進(jìn)行匹配,每個(gè)第三戰(zhàn)團(tuán)均有可能成為與第一戰(zhàn)團(tuán)對(duì)戰(zhàn)的戰(zhàn)團(tuán)。
具體的匹配過(guò)程與上述的第一戰(zhàn)團(tuán)與第二戰(zhàn)團(tuán)之間的匹配方式相同,在此不再贅述。
(3)第三次匹配
對(duì)于超時(shí)未匹配到戰(zhàn)團(tuán)的第一戰(zhàn)團(tuán),應(yīng)該考慮盡量降低匹配門檻,優(yōu)先進(jìn)行匹配。
可選地,在將第一對(duì)象作為一個(gè)待匹配的對(duì)象保存至第二集合中之后,在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未查找到與第一對(duì)象匹配的對(duì)象的情況下,將第二集合中的第一對(duì)象轉(zhuǎn)存至第三集合,第三集合用于保存超時(shí)(即超過(guò)預(yù)設(shè)時(shí)長(zhǎng))未查找到匹配對(duì)象的對(duì)象。
在將第二集合中的第一對(duì)象(第一戰(zhàn)團(tuán))轉(zhuǎn)存至第三集合之后,在接收到匹配指令(如計(jì)時(shí)器定時(shí)發(fā)送的指令、第三集合中數(shù)量達(dá)到固定值時(shí)觸發(fā)的指令、系統(tǒng)根據(jù)算法計(jì)算后觸發(fā)的指令等)時(shí),對(duì)第三集合中的對(duì)象(即超時(shí)未匹配到對(duì)象的戰(zhàn)團(tuán))按照目標(biāo)屬性值的大小進(jìn)行排序;從目標(biāo)屬性值最大或者目標(biāo)屬性值最小的對(duì)象開始,將第三集合中排序相鄰的兩個(gè)對(duì)象作為相互匹配的兩個(gè)對(duì)象。
例如,按照攻擊屬性值從大到小排列,將攻擊屬性值最大和次大的兩個(gè)戰(zhàn)團(tuán)進(jìn)行匹配,將攻擊屬性值第三大和第四大的兩個(gè)戰(zhàn)團(tuán)進(jìn)行匹配,以此類推,直至將第三集合中所有的戰(zhàn)團(tuán)(包括加入的第一戰(zhàn)團(tuán))匹配完畢。
需要說(shuō)明的是,若第三集合中的戰(zhàn)團(tuán)數(shù)量為雙數(shù),那么對(duì)于所有的戰(zhàn)團(tuán),必然都能找到對(duì)應(yīng)的匹配戰(zhàn)團(tuán),極端情況下,若第三集合中的戰(zhàn)團(tuán)數(shù)量為單數(shù),第一戰(zhàn)團(tuán)剛好處于隊(duì)首或者對(duì)尾,剛好沒(méi)有匹配到合適的戰(zhàn)團(tuán),此時(shí)就需要進(jìn)行第四次匹配。
(4)第四次匹配
在將第三集合中排序相鄰的兩個(gè)對(duì)象(戰(zhàn)團(tuán))作為相互匹配的兩個(gè)對(duì)象之后,在不存在與第三集合中的第一對(duì)象(第一戰(zhàn)團(tuán))匹配的對(duì)象的情況下,查找第二集合中目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值最小的第四對(duì)象(即第四戰(zhàn)團(tuán)),也即在第二集合中查找一個(gè)與第一戰(zhàn)團(tuán)戰(zhàn)斗力最接近的戰(zhàn)團(tuán);將第一戰(zhàn)團(tuán)和第四戰(zhàn)團(tuán)作為相互匹配的兩個(gè)戰(zhàn)團(tuán)。
在步驟s208提供的技術(shù)方案中,在判斷出第二集合中存在第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象。
相關(guān)技術(shù)多只有小規(guī)模的戰(zhàn)隊(duì)匹配,不支持將多支戰(zhàn)隊(duì)組成規(guī)模更大且固定人數(shù)的戰(zhàn)團(tuán)(如10人),更不支持戰(zhàn)團(tuán)匹配,本申請(qǐng)可將多支戰(zhàn)隊(duì)組成固定規(guī)模的戰(zhàn)團(tuán),第一次和第二次匹配時(shí)盡可能匹配戰(zhàn)力值接近的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗,第三次和第四次匹配時(shí)盡量縮短玩家平均等待匹配的時(shí)間,盡量避免讓玩家的等待時(shí)間超過(guò)規(guī)定的閾值(比如30秒),同時(shí)有效的安排超時(shí)未匹配的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗。
為了使讀者對(duì)本申請(qǐng)的技術(shù)方案更為理解,下面以游戲?yàn)槔?,結(jié)合圖3和圖4進(jìn)一步詳述本申請(qǐng)的實(shí)施例:
步驟s302,鏈表中加入新的戰(zhàn)隊(duì)。
游戲用戶可以自己組建戰(zhàn)隊(duì),或者加入已經(jīng)組建的戰(zhàn)隊(duì),組建的戰(zhàn)隊(duì)支持實(shí)時(shí)加入到團(tuán)戰(zhàn)中,此時(shí)戰(zhàn)隊(duì)會(huì)被添加至雙向鏈表中。
步驟s304,計(jì)算鏈表中所有戰(zhàn)隊(duì)的當(dāng)前總?cè)藬?shù)。
步驟s306,當(dāng)前人數(shù)除以10的余數(shù)是否為0,若是則執(zhí)行步驟s312,否則執(zhí)行步驟s308。
步驟s308,深度搜索人數(shù)為上述余數(shù)的戰(zhàn)隊(duì)。
步驟s310,將搜索出來(lái)的戰(zhàn)隊(duì)從鏈表中刪除。
步驟s312,搜索出能夠組成10人戰(zhàn)團(tuán)的戰(zhàn)隊(duì)。
在組成戰(zhàn)團(tuán)的過(guò)程中,也即在對(duì)戰(zhàn)隊(duì)鏈表深度搜索過(guò)程中,首先通過(guò)取模操作快速判斷鏈表中的戰(zhàn)隊(duì)是否存在一定不能組成戰(zhàn)團(tuán)的戰(zhàn)隊(duì),如果存在,則根據(jù)模運(yùn)算的余數(shù)從鏈表中刪除無(wú)法組成戰(zhàn)團(tuán)的隊(duì)伍,從而縮小搜索空間并避免錯(cuò)誤的搜索路徑。
具體而言,假設(shè)戰(zhàn)團(tuán)規(guī)模為m人(如10人),則在搜索戰(zhàn)團(tuán)之前,首先對(duì)鏈表中戰(zhàn)隊(duì)總?cè)藬?shù)n關(guān)于m取模,余數(shù)r=(nmodm),如果r為0,則調(diào)用深度搜索嘗試組成戰(zhàn)團(tuán);如果r不為0,則首先執(zhí)行步驟s308,通過(guò)深度搜索能組成規(guī)模為r的戰(zhàn)隊(duì),并將這些戰(zhàn)隊(duì)從鏈表中刪除,再執(zhí)行步驟s312,調(diào)用深度搜索嘗試組成戰(zhàn)團(tuán)。
如果r不為0,但是戰(zhàn)團(tuán)人數(shù)只能為n,所以有r人無(wú)法參與戰(zhàn)斗,因此可以首先在鏈表中搜索能組成r人的隊(duì)伍,并將這些隊(duì)伍從鏈表中刪除,然后再?gòu)逆湵碇兴阉鲬?zhàn)隊(duì)組成戰(zhàn)團(tuán),通過(guò)進(jìn)行優(yōu)化,從而可以縮小搜索空間并避免錯(cuò)誤的搜索路徑,提高組建戰(zhàn)團(tuán)的效率。
步驟s314,已組戰(zhàn)團(tuán)(即待匹配戰(zhàn)團(tuán))的戰(zhàn)斗力與新組成的戰(zhàn)團(tuán)(即第一戰(zhàn)團(tuán))的戰(zhàn)斗力差值是否小于閾值,若是則執(zhí)行步驟s316,否則執(zhí)行步驟s318。
步驟s316,將匹配到的戰(zhàn)團(tuán)從已組戰(zhàn)團(tuán)中刪除,并加入團(tuán)戰(zhàn)。
步驟s318,將第一戰(zhàn)團(tuán)加入待匹配戰(zhàn)團(tuán)。
在該實(shí)施例中,在進(jìn)行戰(zhàn)團(tuán)匹配時(shí),以10人大小的戰(zhàn)團(tuán)規(guī)模為例,當(dāng)有新隊(duì)伍想加入戰(zhàn)團(tuán)時(shí),將該新隊(duì)伍加入雙向鏈表,根據(jù)玩家人數(shù)模10的余數(shù),判斷是否提前刪除一些隊(duì)伍,搜索到新戰(zhàn)團(tuán)group0以后,匹配戰(zhàn)力值接近的戰(zhàn)團(tuán)group1和group0進(jìn)行戰(zhàn)斗。同時(shí),執(zhí)行圖4所示的步驟,定時(shí)檢查是否存在超時(shí)的戰(zhàn)團(tuán),并按戰(zhàn)力值匹配超時(shí)的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗,如果仍然有超時(shí)戰(zhàn)團(tuán)未匹配(超時(shí)戰(zhàn)團(tuán)個(gè)數(shù)為奇數(shù)時(shí)),則安排超時(shí)戰(zhàn)團(tuán)和戰(zhàn)力最接近的未超時(shí)戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗。
步驟s402,定時(shí)將已組戰(zhàn)團(tuán)(即第二集合)中超時(shí)的戰(zhàn)團(tuán)加入超時(shí)戰(zhàn)團(tuán)鏈表(即第三集合)。
戰(zhàn)團(tuán)匹配過(guò)程主要考慮挑選戰(zhàn)斗力接近的戰(zhàn)團(tuán)進(jìn)行對(duì)壘,為新組成的戰(zhàn)團(tuán)以及超時(shí)未匹配的戰(zhàn)團(tuán)挑選對(duì)壘戰(zhàn)團(tuán)。集合set0保存目前所有已成立但還未能匹配到對(duì)壘戰(zhàn)團(tuán)的戰(zhàn)團(tuán),算法定時(shí)掃描集合set0(即第二集合),將其中超時(shí)未匹配(等待時(shí)間過(guò)長(zhǎng))的戰(zhàn)團(tuán)加入集合set1(即第三集合),并將這些戰(zhàn)團(tuán)從set0中刪除,后續(xù)的戰(zhàn)團(tuán)匹配過(guò)程中則會(huì)考慮將集合set1中的戰(zhàn)團(tuán)相互匹配對(duì)壘,如步驟s404和步驟s406。
需要說(shuō)明的是,對(duì)于set0,假設(shè)要為新成立的戰(zhàn)團(tuán)group0挑選對(duì)壘戰(zhàn)團(tuán),則掃描集合set0,嘗試找到與戰(zhàn)團(tuán)group0戰(zhàn)斗力差值小于給定閾值的戰(zhàn)團(tuán),如果能找到滿足條件的戰(zhàn)團(tuán)group1,則將group1從已組戰(zhàn)團(tuán)中刪除,安排group0和group1進(jìn)行戰(zhàn)斗,否則,則將group0加入集合set0,等待后續(xù)匹配。
步驟s404,對(duì)于超時(shí)戰(zhàn)團(tuán)鏈表,超時(shí)戰(zhàn)團(tuán)按照戰(zhàn)斗力排序。
步驟s406,超時(shí)戰(zhàn)團(tuán)按照排序兩兩進(jìn)行戰(zhàn)斗。
步驟s408,判斷是否還存在超時(shí)戰(zhàn)團(tuán),若是則執(zhí)行步驟s410,否則執(zhí)行步驟s412。
為了盡快安排超時(shí)未匹配的戰(zhàn)團(tuán)進(jìn)行對(duì)壘,將集合set1中的戰(zhàn)團(tuán)按戰(zhàn)力值排序(由于超時(shí)戰(zhàn)團(tuán)數(shù)目少,set1的排序時(shí)間成本很低),排序完成后,從set1中每次拿出兩個(gè)戰(zhàn)力值最大和次大的兩個(gè)戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗,并從set1中刪除這兩個(gè)戰(zhàn)團(tuán),如果set1中仍然有未能匹配的戰(zhàn)團(tuán),則將set1剩下戰(zhàn)團(tuán)和set0中戰(zhàn)團(tuán)進(jìn)行匹配,找出戰(zhàn)力值最接近的兩個(gè)戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗,此時(shí)不再要求戰(zhàn)力差小于閾值。
步驟s410,從已組戰(zhàn)團(tuán)中找出和超時(shí)戰(zhàn)團(tuán)戰(zhàn)斗力最接近的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗。
步驟s412,結(jié)束匹配。
本申請(qǐng)的上述方法通過(guò)實(shí)踐驗(yàn)證切實(shí)可行,例如:實(shí)驗(yàn)?zāi)M玩家人數(shù)從20到1000之間變化,仿真981次,每個(gè)玩家都屬于一個(gè)隊(duì)伍,每個(gè)隊(duì)伍1到5人(實(shí)際情景中,沒(méi)有加入任何隊(duì)伍的玩家,可以認(rèn)為是在人數(shù)為1的隊(duì)伍中),多個(gè)隊(duì)伍可以組成10人戰(zhàn)團(tuán)。玩家戰(zhàn)力在1到4000,戰(zhàn)團(tuán)每次戰(zhàn)斗時(shí)間5分鐘,戰(zhàn)斗總時(shí)間為40分鐘,每次戰(zhàn)斗完休息時(shí)間從5到30秒不等,也即每支戰(zhàn)團(tuán)最多戰(zhàn)斗7次。戰(zhàn)團(tuán)的戰(zhàn)力是10個(gè)玩家戰(zhàn)力平均值,能進(jìn)行戰(zhàn)斗的兩個(gè)戰(zhàn)團(tuán)之間的戰(zhàn)力差不超過(guò)1000。玩家一場(chǎng)戰(zhàn)斗結(jié)束到下一場(chǎng)戰(zhàn)斗開始的時(shí)間間隔(不包括玩家主動(dòng)休息時(shí)間)為玩家等待時(shí)間,最大等待時(shí)間為1000秒,如果戰(zhàn)團(tuán)內(nèi)存在玩家等待時(shí)間超過(guò)1000秒,強(qiáng)制匹配,不考慮戰(zhàn)力差。
仿真結(jié)果如圖5所示,橫坐標(biāo)是玩家人數(shù),縱坐標(biāo)是百分比,橘紅色曲線(即虛線下方的曲線b)是等待時(shí)間在30秒以上的玩家所占的比例,該統(tǒng)計(jì)指標(biāo)可以表明該算法對(duì)多少數(shù)量的玩家是不可忍受的,藍(lán)色曲線(即虛線上方的曲線a)是等待時(shí)間在10秒以下的玩家所占的比例,該統(tǒng)計(jì)指標(biāo)可以表明該算法對(duì)多少數(shù)量的玩家可以用最短的時(shí)間匹配出結(jié)果。在初始時(shí)曲線a和曲線b存在相交的地方。在981次模擬中,每次模擬的時(shí)間包括每支戰(zhàn)團(tuán)最多達(dá)七次的匹配,結(jié)果表明算法每次模擬平均運(yùn)行時(shí)間0.2599毫秒,此運(yùn)行時(shí)間在40分鐘的戰(zhàn)斗總時(shí)間中微乎其微,說(shuō)明算法實(shí)用性強(qiáng)。
在本申請(qǐng)?zhí)峁┑募夹g(shù)方案中,可將多支戰(zhàn)隊(duì)組成規(guī)模更大且固定人數(shù)的戰(zhàn)團(tuán),并盡可能匹配戰(zhàn)力值接近的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗,同時(shí)有效的安排超時(shí)未匹配的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗,實(shí)踐證明算法平均可實(shí)現(xiàn)92.81%的玩家及時(shí)匹配,不能及時(shí)匹配的玩家只有4.2%,平均匹配時(shí)間只有0.2599毫秒,因此可以取得良好的匹配效果。
作為一種可選的實(shí)施例,本申請(qǐng)的上述方法還可以用于金融領(lǐng)域,用于匹配收益、風(fēng)險(xiǎn)相當(dāng)?shù)膬煞N或多種金融產(chǎn)品的組合,其具體實(shí)現(xiàn)方式與游戲領(lǐng)域的實(shí)現(xiàn)方式類似,在此不再贅述。
可選地,本申請(qǐng)的上述方法除了在上述實(shí)施例中的服務(wù)器上運(yùn)行以外,還可以在終端上,或在終端和服務(wù)器上共同執(zhí)行,具體實(shí)現(xiàn)方式與在服務(wù)器上類似,后續(xù)不再贅述。
需要說(shuō)明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
實(shí)施例2
根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述對(duì)象的匹配方法的裝置。圖6是根據(jù)本發(fā)明實(shí)施例的一種可選的對(duì)象的匹配裝置的示意圖,如圖6所示,該裝置可以包括:接收單元62、第一獲取單元64、第一判斷單元66以及第一匹配單元68。
接收單元62,用于接收到目標(biāo)指令,其中,目標(biāo)指令用于指示獲取相互匹配的兩個(gè)對(duì)象;
第一獲取單元64,用于獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,其中,第一集合用于保存預(yù)先創(chuàng)建的標(biāo)識(shí)組,第一集合中的每個(gè)標(biāo)識(shí)組包括至少一個(gè)標(biāo)識(shí);
第一判斷單元66,用于判斷第二集合中是否存在第二對(duì)象,其中,第二對(duì)象的目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi),第二集合用于保存待匹配的對(duì)象,每個(gè)待匹配的對(duì)象用于表示多個(gè)第二標(biāo)識(shí)組,待匹配的對(duì)象表示的多個(gè)第二標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量與第一對(duì)象表示的多個(gè)第一標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量相同;
第一匹配單元68,用于在判斷出第二集合中存在第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象。
需要說(shuō)明的是,該實(shí)施例中的接收單元62可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s202,該實(shí)施例中的第一獲取單元64可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s204,該實(shí)施例中的第一判斷單元66可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s206,該實(shí)施例中的第一匹配單元68可以用于執(zhí)行本申請(qǐng)實(shí)施例1中的步驟s208。
此處需要說(shuō)明的是,上述模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。需要說(shuō)明的是,上述模塊作為裝置的一部分可以運(yùn)行在如圖1所示的硬件環(huán)境中,可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件實(shí)現(xiàn)。
通過(guò)上述模塊,在接收到用于指示獲取相互匹配的兩個(gè)對(duì)象的目標(biāo)指令時(shí),獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,在判斷出第二集合中存在與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象,對(duì)于每一個(gè)創(chuàng)建的對(duì)象,只需要與第二集合中的對(duì)象逐一比對(duì)即可找到相互匹配的對(duì)象,而不用將其放入第二集合中再對(duì)第二集合中的對(duì)象進(jìn)行兩兩匹配,可以解決相關(guān)技術(shù)中在確定相互匹配的對(duì)象時(shí)效率較低的技術(shù)問(wèn)題,進(jìn)而達(dá)到提高匹配效率的技術(shù)效果。
本申請(qǐng)的上述裝置可以服務(wù)器的形式應(yīng)用于需要進(jìn)行對(duì)象匹配的領(lǐng)域,如游戲領(lǐng)域、金融領(lǐng)域等。下面分別進(jìn)行說(shuō)明:
(一)對(duì)于金融領(lǐng)域
在相關(guān)技術(shù)中,在給定一定金融產(chǎn)品的組合方式(即第一對(duì)象)時(shí),需要進(jìn)行類推得到某些屬性類似的其它組合方式,具體是以給出的第一對(duì)象作為參考,得到與第一對(duì)象在收益、風(fēng)險(xiǎn)等方面相當(dāng)?shù)慕鹑诋a(chǎn)品的組合方式(即第二對(duì)象),并推薦給用戶,上述的目標(biāo)指令即用于觸發(fā)執(zhí)行上述的得到相互匹配的兩個(gè)對(duì)象的指令。
第一集合用于保存預(yù)先創(chuàng)建的標(biāo)識(shí)組,標(biāo)識(shí)組中的標(biāo)識(shí)即基金、股票等金融產(chǎn)品的標(biāo)識(shí),標(biāo)識(shí)組相當(dāng)于一個(gè)較小的組合,其中包括的金融產(chǎn)品的組合往往在1到5個(gè)之間,每個(gè)標(biāo)識(shí)組所標(biāo)識(shí)的金融產(chǎn)品優(yōu)選為同一類金融產(chǎn)品(如基金或股票等),也可以為不同類金融產(chǎn)品的組合;第一標(biāo)識(shí)組即被選出的一個(gè)較小的金融產(chǎn)品組合,被選出的多個(gè)第一標(biāo)識(shí)組被即為第一對(duì)象,第一對(duì)象相當(dāng)于一個(gè)復(fù)合的更大的金融產(chǎn)品組合方式。
上述的獲取第一集合中的多個(gè)第一標(biāo)識(shí)組相當(dāng)于選出多個(gè)較小的金融產(chǎn)品的組合方式,創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象相當(dāng)于將選取出的多個(gè)較小的金融產(chǎn)品的組合方式組合在一起,形成更為復(fù)雜的第一對(duì)象,也即用于參考的對(duì)象。
第二集合中的對(duì)象也相當(dāng)于對(duì)多個(gè)較小的金融產(chǎn)品的組合方式的進(jìn)一步組合,該對(duì)象所表示的每個(gè)第二標(biāo)識(shí)組相當(dāng)于一個(gè)較小的金融產(chǎn)品的組合方式,第二標(biāo)識(shí)組中的金融產(chǎn)品的數(shù)量與第一標(biāo)識(shí)組中金融產(chǎn)品的數(shù)量相同。
判斷第二集合中是否存在第二對(duì)象,即判斷第二集合中是否存在與第一對(duì)象在目標(biāo)屬性(如收益、風(fēng)險(xiǎn)等屬性中的一個(gè)或多個(gè))上相匹配的對(duì)象,即以第一對(duì)象為參考,選出與其在收益、風(fēng)險(xiǎn)等方面較為接近的對(duì)象。
在判斷出第二集合中存在第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象,如在專家等給出一個(gè)投資方式(即第一對(duì)象)的情況下,通過(guò)匹配計(jì)算得到與之在收益、風(fēng)險(xiǎn)等方面相當(dāng)?shù)牡诙?duì)象,以便于將第二對(duì)象和第一對(duì)象一起推薦給用戶購(gòu)買。
(二)對(duì)于游戲領(lǐng)域
第一集合即用于保存待組成戰(zhàn)團(tuán)的戰(zhàn)隊(duì)的集合,集合中的每個(gè)標(biāo)識(shí)組相當(dāng)于一個(gè)戰(zhàn)隊(duì),標(biāo)識(shí)組中的標(biāo)識(shí)相當(dāng)于同一戰(zhàn)隊(duì)中帳號(hào)的標(biāo)識(shí)(如帳號(hào)本身、昵稱、標(biāo)識(shí)字符串等);創(chuàng)建的用于表示多個(gè)第一標(biāo)識(shí)組(戰(zhàn)隊(duì))的第一對(duì)象即一個(gè)戰(zhàn)團(tuán)(記為第一戰(zhàn)團(tuán))。
第二集合中保存的對(duì)象為待匹配的戰(zhàn)團(tuán),待匹配的戰(zhàn)團(tuán)也由多個(gè)戰(zhàn)隊(duì)(即第二標(biāo)識(shí)組)組成,第二戰(zhàn)團(tuán)中帳號(hào)數(shù)量(即標(biāo)識(shí)數(shù)量)與第一戰(zhàn)團(tuán)中帳號(hào)數(shù)量相同。
目標(biāo)屬性可以為特定的一個(gè)屬性,也可以是多個(gè)屬性的組合,所涉及的屬性包括但不局限于進(jìn)攻屬性(如進(jìn)攻武器、進(jìn)攻武器的熟練度、經(jīng)驗(yàn)、敏捷度、智力等)、防御屬性(如防御武器、防御武器的熟練度、恢復(fù)能力、治療能力等)等。
上述的戰(zhàn)隊(duì)由一個(gè)或多個(gè)玩家(即帳號(hào),如1到5個(gè))組成;戰(zhàn)團(tuán)由多個(gè)戰(zhàn)隊(duì)組成,每個(gè)戰(zhàn)團(tuán)的玩家數(shù)目固定(如10個(gè));戰(zhàn)團(tuán)組成是指挑選多個(gè)戰(zhàn)隊(duì)組成一個(gè)戰(zhàn)團(tuán);戰(zhàn)團(tuán)匹配是指匹配戰(zhàn)力值接近的兩個(gè)戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗。
可選地,第一獲取單元在獲取第一集合中的多個(gè)第一標(biāo)識(shí)組時(shí),先考慮第一集合中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量(也即帳號(hào)數(shù)量),在第一集合中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量不為預(yù)設(shè)數(shù)量的整數(shù)倍的情況下,刪除第一集合中標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組,目標(biāo)數(shù)量為第一集合中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量與預(yù)設(shè)數(shù)量進(jìn)行取余運(yùn)算后的余數(shù),可以保證第一集合中的帳號(hào)數(shù)量始終是預(yù)設(shè)數(shù)量的整數(shù)倍,也即每個(gè)標(biāo)識(shí)組(戰(zhàn)隊(duì))都是需要被用到的,從而避免了對(duì)不能組成戰(zhàn)團(tuán)的戰(zhàn)隊(duì)的搜索,提高了戰(zhàn)團(tuán)的組成效率。
需要說(shuō)明的是,刪除第一集合中標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組是指刪除總的帳號(hào)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組(即戰(zhàn)隊(duì)),即按照目標(biāo)數(shù)量進(jìn)行刪除,可以刪除一個(gè)或者多個(gè)戰(zhàn)隊(duì),只要這一個(gè)或多個(gè)戰(zhàn)隊(duì)的總標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量即可。
第一獲取單元還用于在第一集合中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量為預(yù)設(shè)數(shù)量的整數(shù)倍的情況下,或在刪除第一集合中標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組之后,按照預(yù)設(shè)數(shù)量查找雙向鏈表中的多個(gè)第一標(biāo)識(shí)組,查找到的多個(gè)第一標(biāo)識(shí)組中所有標(biāo)識(shí)的標(biāo)識(shí)數(shù)量為預(yù)設(shè)數(shù)量。
可選地,第一獲取單元還用于在刪除第一集合中標(biāo)識(shí)數(shù)量為目標(biāo)數(shù)量的標(biāo)識(shí)組之后,刪除雙向鏈表中的第一節(jié)點(diǎn),并建立與第一節(jié)點(diǎn)相鄰的兩個(gè)第二節(jié)點(diǎn)之間的相鄰關(guān)系,第一節(jié)點(diǎn)為雙向鏈表中用于保存被刪除的標(biāo)識(shí)組的節(jié)點(diǎn)。
在上述實(shí)施例中,游戲客戶端的玩家隊(duì)伍發(fā)出組團(tuán)戰(zhàn)斗請(qǐng)求,后臺(tái)服務(wù)器收到請(qǐng)求后,進(jìn)行戰(zhàn)團(tuán)組成和戰(zhàn)團(tuán)匹配。為了快速的完成后臺(tái)響應(yīng)過(guò)程,本申請(qǐng)使用基于雙向鏈表的深度優(yōu)先搜索算法,雙向鏈表中存放所有待選的戰(zhàn)隊(duì),戰(zhàn)團(tuán)組成過(guò)程中深度優(yōu)先搜索戰(zhàn)隊(duì)鏈表,在戰(zhàn)團(tuán)組成后,在鏈表中刪除該戰(zhàn)團(tuán)中的所有戰(zhàn)隊(duì),選用雙向鏈表,便于在戰(zhàn)團(tuán)組成過(guò)程中頻繁地接收新的戰(zhàn)隊(duì)并刪除已組成戰(zhàn)團(tuán)的戰(zhàn)隊(duì),雙向鏈表十分適合這樣頻繁的插入和刪除操作,能夠提高組成戰(zhàn)團(tuán)的效率。
可選地,游戲中需要戰(zhàn)隊(duì)之間進(jìn)行匹配并戰(zhàn)斗的情景,本申請(qǐng)通過(guò)判斷第二集合中是否存在第二對(duì)象等方式來(lái)查找與第一對(duì)象匹配的對(duì)象,即查找與第一戰(zhàn)團(tuán)匹配的戰(zhàn)團(tuán),對(duì)于每個(gè)新創(chuàng)建的第一戰(zhàn)團(tuán),主要包括以下幾次匹配機(jī)會(huì),以將多個(gè)戰(zhàn)隊(duì)組成固定人數(shù)的戰(zhàn)團(tuán),并盡量縮短玩家平均等待匹配的時(shí)間,減少等待時(shí)間過(guò)長(zhǎng)的玩家的數(shù)目,并盡可能匹配戰(zhàn)力值接近的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗。
(1)第一次匹配
第一判斷單元在第一次匹配的過(guò)程中,判斷第二集合中是否存在第二對(duì)象可以通過(guò)如下方式實(shí)現(xiàn):獲取第一對(duì)象(第一戰(zhàn)團(tuán))的目標(biāo)屬性值(如進(jìn)攻屬性和/或防御屬性的屬性值)和第二集合中任一對(duì)象(即待匹配戰(zhàn)團(tuán))的目標(biāo)屬性值(如進(jìn)攻屬性和/或防御屬性的屬性值),第一對(duì)象的目標(biāo)屬性值為多個(gè)第一標(biāo)識(shí)組中所有標(biāo)識(shí)在目標(biāo)屬性上的屬性值的平均值(也即是多個(gè)第一戰(zhàn)隊(duì)中每個(gè)帳號(hào)在進(jìn)攻屬性或防御屬性的屬性值的平均值),任一對(duì)象的目標(biāo)屬性值為任一對(duì)象表示的多個(gè)第二標(biāo)識(shí)組中所有標(biāo)識(shí)在目標(biāo)屬性上的屬性值的平均值(也即是多個(gè)第二戰(zhàn)隊(duì)中每個(gè)帳號(hào)在進(jìn)攻屬性或防御屬性的屬性值的平均值);判斷第一對(duì)象的目標(biāo)屬性值與任一對(duì)象的目標(biāo)屬性值之間的差值是否在預(yù)設(shè)范圍內(nèi),目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的任一對(duì)象為第二對(duì)象,在第一次匹配時(shí),若存在第二戰(zhàn)團(tuán),則相當(dāng)于第一次匹配成功,由第二戰(zhàn)團(tuán)和第一戰(zhàn)團(tuán)進(jìn)行團(tuán)戰(zhàn)。
可選地,如圖7所示,本申請(qǐng)的裝置還可以包括:保存單元72,用于在判斷第二集合中是否存在第二對(duì)象之后,在判斷出第二集合中不存在與第一對(duì)象匹配的第二對(duì)象的情況下,將第一對(duì)象作為一個(gè)待匹配的對(duì)象保存至第二集合中,以與后續(xù)創(chuàng)建的對(duì)象進(jìn)行匹配。
(2)第二次匹配
可選地,為了保證對(duì)每個(gè)新創(chuàng)建的第一對(duì)象(第一戰(zhàn)團(tuán))能夠匹配到對(duì)應(yīng)的對(duì)象(戰(zhàn)團(tuán)),對(duì)于被保存在第二集合中的第一對(duì)象,還存在第二次匹配到對(duì)應(yīng)的對(duì)象的機(jī)會(huì)。
本申請(qǐng)的裝置還可以包括:第二獲取單元,用于在將第一對(duì)象作為一個(gè)待匹配的對(duì)象保存至第二集合中之后,獲取第一集合中的多個(gè)第三標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第三標(biāo)識(shí)組的第三對(duì)象,其中,第三標(biāo)識(shí)組與第一標(biāo)識(shí)組為不同的標(biāo)識(shí)組;第二判斷單元,用于判斷第三對(duì)象的目標(biāo)屬性值與第二集合中的第一對(duì)象的目標(biāo)屬性值之間的差值是否在預(yù)設(shè)范圍內(nèi);第二匹配單元,用于在判斷出第三對(duì)象的目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的情況下,將第一對(duì)象和第三對(duì)象作為相互匹配的兩個(gè)對(duì)象。
對(duì)于每一個(gè)在創(chuàng)建第一戰(zhàn)團(tuán)之后創(chuàng)建的第三戰(zhàn)團(tuán),都需要與第二集合中的第一戰(zhàn)團(tuán)進(jìn)行匹配,每個(gè)第三戰(zhàn)團(tuán)均有可能成為與第一戰(zhàn)團(tuán)對(duì)戰(zhàn)的戰(zhàn)團(tuán)。
具體的匹配過(guò)程與上述的第一戰(zhàn)團(tuán)與第二戰(zhàn)團(tuán)之間的匹配方式相同,在此不再贅述。
(3)第三次匹配
對(duì)于超時(shí)未匹配到戰(zhàn)團(tuán)的第一戰(zhàn)團(tuán),應(yīng)該考慮盡量降低匹配門檻,優(yōu)先進(jìn)行匹配。
可選地,本申請(qǐng)的裝置還可以包括:轉(zhuǎn)存單元,用于在將第一對(duì)象作為一個(gè)待匹配的對(duì)象保存至第二集合中之后,在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)未查找到與第一對(duì)象匹配的對(duì)象的情況下,將第二集合中的第一對(duì)象轉(zhuǎn)存至第三集合,其中,第三集合用于保存超時(shí)未查找到匹配對(duì)象的對(duì)象。
可選地,本申請(qǐng)的裝置還可以包括:排序單元,用于在將第二集合中的第一對(duì)象轉(zhuǎn)存至第三集合之后,在接收到匹配指令時(shí),對(duì)第三集合中的對(duì)象按照目標(biāo)屬性值的大小進(jìn)行排序;第三匹配單元,用于從目標(biāo)屬性值最大或者目標(biāo)屬性值最小的對(duì)象開始,將第三集合中排序相鄰的兩個(gè)對(duì)象作為相互匹配的兩個(gè)對(duì)象。
例如,按照攻擊屬性值從大到小排列,將攻擊屬性值最大和次大的兩個(gè)戰(zhàn)團(tuán)進(jìn)行匹配,將攻擊屬性值第三大和第四大的兩個(gè)戰(zhàn)團(tuán)進(jìn)行匹配,以此類推,直至將第三集合中所有的戰(zhàn)團(tuán)(包括加入的第一戰(zhàn)團(tuán))匹配完畢。
需要說(shuō)明的是,若第三集合中的戰(zhàn)團(tuán)數(shù)量為雙數(shù),那么對(duì)于所有的戰(zhàn)團(tuán),必然都能找到對(duì)應(yīng)的匹配戰(zhàn)團(tuán),極端情況下,若第三集合中的戰(zhàn)團(tuán)數(shù)量為單數(shù),第一戰(zhàn)團(tuán)剛好處于隊(duì)首或者對(duì)尾,剛好沒(méi)有匹配到合適的戰(zhàn)團(tuán),此時(shí)就需要進(jìn)行第四次匹配。
(4)第四次匹配
第四次匹配可以通過(guò)本申請(qǐng)的裝置包括的如下模塊實(shí)現(xiàn):查找單元,用于在將第三集合中排序相鄰的兩個(gè)對(duì)象作為相互匹配的兩個(gè)對(duì)象之后,在不存在與第三集合中的第一對(duì)象匹配的對(duì)象的情況下,查找第二集合中目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值最小的第四對(duì)象;第四匹配單元,用于將第一對(duì)象和第四對(duì)象作為相互匹配的兩個(gè)對(duì)象。
相關(guān)技術(shù)多只有小規(guī)模的戰(zhàn)隊(duì)匹配,不支持將多支戰(zhàn)隊(duì)組成規(guī)模更大且固定人數(shù)的戰(zhàn)團(tuán)(如10人),更不支持戰(zhàn)團(tuán)匹配,本申請(qǐng)可將多支戰(zhàn)隊(duì)組成固定規(guī)模的戰(zhàn)團(tuán),第一次和第二次匹配時(shí)盡可能匹配戰(zhàn)力值接近的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗,第三次和第四次匹配時(shí)盡量縮短玩家平均等待匹配的時(shí)間,盡量避免讓玩家的等待時(shí)間超過(guò)規(guī)定的閾值(比如30秒),同時(shí)有效的安排超時(shí)未匹配的戰(zhàn)團(tuán)進(jìn)行戰(zhàn)斗。
此處需要說(shuō)明的是,上述模塊與對(duì)應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場(chǎng)景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。需要說(shuō)明的是,上述模塊作為裝置的一部分可以運(yùn)行在如圖1所示的硬件環(huán)境中,可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件實(shí)現(xiàn),其中,硬件環(huán)境包括網(wǎng)絡(luò)環(huán)境。
實(shí)施例3
根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述對(duì)象的匹配方法的服務(wù)器或終端。
圖8是根據(jù)本發(fā)明實(shí)施例的一種終端的結(jié)構(gòu)框圖,如圖8所示,該終端可以包括:一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器801、存儲(chǔ)器803、以及傳輸裝置805(如上述實(shí)施例中的發(fā)送裝置),如圖8所示,該終端還可以包括輸入輸出設(shè)備807。
其中,存儲(chǔ)器803可用于存儲(chǔ)軟件程序以及模塊,如本發(fā)明實(shí)施例中的對(duì)象的匹配方法和裝置對(duì)應(yīng)的程序指令/模塊,處理器801通過(guò)運(yùn)行存儲(chǔ)在存儲(chǔ)器803內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的對(duì)象的匹配方法。存儲(chǔ)器803可包括高速隨機(jī)存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器803可進(jìn)一步包括相對(duì)于處理器801遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過(guò)網(wǎng)絡(luò)連接至終端。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
上述的傳輸裝置805用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù),還可以用于處理器與存儲(chǔ)器之間的數(shù)據(jù)傳輸。上述的網(wǎng)絡(luò)具體實(shí)例可包括有線網(wǎng)絡(luò)及無(wú)線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置805包括一個(gè)網(wǎng)絡(luò)適配器(networkinterfacecontroller,nic),其可通過(guò)網(wǎng)線與其他網(wǎng)絡(luò)設(shè)備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置805為射頻(radiofrequency,rf)模塊,其用于通過(guò)無(wú)線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
其中,具體地,存儲(chǔ)器803用于存儲(chǔ)應(yīng)用程序。
處理器801可以通過(guò)傳輸裝置805調(diào)用存儲(chǔ)器803存儲(chǔ)的應(yīng)用程序,以執(zhí)行下述步驟:接收到目標(biāo)指令,其中,目標(biāo)指令用于指示獲取相互匹配的兩個(gè)對(duì)象;獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,其中,第一集合用于保存預(yù)先創(chuàng)建的標(biāo)識(shí)組,第一集合中的每個(gè)標(biāo)識(shí)組包括至少一個(gè)標(biāo)識(shí);判斷第二集合中是否存在第二對(duì)象,其中,第二對(duì)象的目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi),第二集合用于保存待匹配的對(duì)象,每個(gè)待匹配的對(duì)象用于表示多個(gè)第二標(biāo)識(shí)組,待匹配的對(duì)象表示的多個(gè)第二標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量與第一對(duì)象表示的多個(gè)第一標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量相同;在判斷出第二集合中存在第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象。
處理器801還用于執(zhí)行下述步驟:獲取第一對(duì)象的目標(biāo)屬性值和第二集合中任一對(duì)象的目標(biāo)屬性值,其中,第一對(duì)象的目標(biāo)屬性值為多個(gè)第一標(biāo)識(shí)組中所有標(biāo)識(shí)在目標(biāo)屬性上的屬性值的平均值,任一對(duì)象的目標(biāo)屬性值為任一對(duì)象表示的多個(gè)第二標(biāo)識(shí)組中所有標(biāo)識(shí)在目標(biāo)屬性上的屬性值的平均值;判斷第一對(duì)象的目標(biāo)屬性值與任一對(duì)象的目標(biāo)屬性值之間的差值是否在預(yù)設(shè)范圍內(nèi),其中,目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的任一對(duì)象為第二對(duì)象。
采用本發(fā)明實(shí)施例,在接收到用于指示獲取相互匹配的兩個(gè)對(duì)象的目標(biāo)指令時(shí),獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,在判斷出第二集合中存在與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象,對(duì)于每一個(gè)創(chuàng)建的對(duì)象,只需要與第二集合中的對(duì)象逐一比對(duì)即可找到相互匹配的對(duì)象,而不用將其放入第二集合中再對(duì)第二集合中的對(duì)象進(jìn)行兩兩匹配,可以解決相關(guān)技術(shù)中在確定相互匹配的對(duì)象時(shí)效率較低的技術(shù)問(wèn)題,進(jìn)而達(dá)到提高匹配效率的技術(shù)效果。
可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例1和實(shí)施例2中所描述的示例,本實(shí)施例在此不再贅述。
本領(lǐng)域普通技術(shù)人員可以理解,圖8所示的結(jié)構(gòu)僅為示意,終端可以是智能手機(jī)(如android手機(jī)、ios手機(jī)等)、平板電腦、掌上電腦以及移動(dòng)互聯(lián)網(wǎng)設(shè)備(mobileinternetdevices,mid)、pad等終端設(shè)備。圖8其并不對(duì)上述電子裝置的結(jié)構(gòu)造成限定。例如,終端還可包括比圖8中所示更多或者更少的組件(如網(wǎng)絡(luò)接口、顯示裝置等),或者具有與圖8所示不同的配置。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令終端設(shè)備相關(guān)的硬件來(lái)完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括:閃存盤、只讀存儲(chǔ)器(read-onlymemory,rom)、隨機(jī)存取器(randomaccessmemory,ram)、磁盤或光盤等。
實(shí)施例4
本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)。可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以用于執(zhí)行對(duì)象的匹配方法的程序代碼。
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以位于上述實(shí)施例所示的網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備中的至少一個(gè)網(wǎng)絡(luò)設(shè)備上。
可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
s11,接收到目標(biāo)指令,其中,目標(biāo)指令用于指示獲取相互匹配的兩個(gè)對(duì)象;
s12,獲取第一集合中的多個(gè)第一標(biāo)識(shí)組,并創(chuàng)建用于表示獲取的多個(gè)第一標(biāo)識(shí)組的第一對(duì)象,其中,第一集合用于保存預(yù)先創(chuàng)建的標(biāo)識(shí)組,第一集合中的每個(gè)標(biāo)識(shí)組包括至少一個(gè)標(biāo)識(shí);
s13,判斷第二集合中是否存在第二對(duì)象,其中,第二對(duì)象的目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi),第二集合用于保存待匹配的對(duì)象,每個(gè)待匹配的對(duì)象用于表示多個(gè)第二標(biāo)識(shí)組,待匹配的對(duì)象表示的多個(gè)第二標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量與第一對(duì)象表示的多個(gè)第一標(biāo)識(shí)組的標(biāo)識(shí)數(shù)量相同;
s14,在判斷出第二集合中存在第二對(duì)象的情況下,將第一對(duì)象和第二對(duì)象作為相互匹配的兩個(gè)對(duì)象。
可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
s21,獲取第一對(duì)象的目標(biāo)屬性值和第二集合中任一對(duì)象的目標(biāo)屬性值,其中,第一對(duì)象的目標(biāo)屬性值為多個(gè)第一標(biāo)識(shí)組中所有標(biāo)識(shí)在目標(biāo)屬性上的屬性值的平均值,任一對(duì)象的目標(biāo)屬性值為任一對(duì)象表示的多個(gè)第二標(biāo)識(shí)組中所有標(biāo)識(shí)在目標(biāo)屬性上的屬性值的平均值;
s22,判斷第一對(duì)象的目標(biāo)屬性值與任一對(duì)象的目標(biāo)屬性值之間的差值是否在預(yù)設(shè)范圍內(nèi),其中,目標(biāo)屬性值與第一對(duì)象的目標(biāo)屬性值之間的差值在預(yù)設(shè)范圍內(nèi)的任一對(duì)象為第二對(duì)象。
可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例1和實(shí)施例2中所描述的示例,本實(shí)施例在此不再贅述。
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:u盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
上述實(shí)施例中的集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在上述計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)或多臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的客戶端,可通過(guò)其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。