成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

按權(quán)重選取目標(biāo)的Java算法

開發(fā) 后端 算法
關(guān)于這個(gè)系統(tǒng),個(gè)人比較感興趣的是其中與權(quán)重有關(guān)的部分。每個(gè)武將有不同的出現(xiàn)機(jī)率,且每個(gè)武將對(duì)應(yīng)多個(gè)權(quán)重不同的成長(zhǎng)值。這里有兩處地方與權(quán)重有關(guān)了,剛開始以為自己寫了個(gè)很巧妙的算法,現(xiàn)在回想起那是多么的低效。

最近在做一個(gè)武將系統(tǒng),是一個(gè)比較繁瑣的系統(tǒng),用例比較多。安排了兩周時(shí)間給我開發(fā),但是光是開發(fā)的話一周就夠了,剩下的時(shí)間用來調(diào)試。關(guān)于這個(gè)系統(tǒng),個(gè)人比較感興趣的是其中與權(quán)重有關(guān)的部分。每個(gè)武將有不同的出現(xiàn)機(jī)率,且每個(gè)武將對(duì)應(yīng)多個(gè)權(quán)重不同的成長(zhǎng)值。這里有兩處地方與權(quán)重有關(guān)了,剛開始以為自己寫了個(gè)很巧妙的算法,現(xiàn)在回想起那是多么的低效。因?yàn)槲鋵⒌膫€(gè)數(shù)不確定,權(quán)重的總和也不確定,所以剛開始感覺有點(diǎn)棘手。解決的辦法是有,但是感覺不夠好。

假設(shè)權(quán)重總和是total,那么在這個(gè)范圍內(nèi)產(chǎn)生一個(gè)隨機(jī)數(shù),觀察這個(gè)隨機(jī)數(shù)的所在區(qū)間,就能確定在哪個(gè)權(quán)重的范圍之內(nèi)了。

舉個(gè)例子,有三個(gè)武將A、B、C,他們的出現(xiàn)機(jī)率分別是30%、40%和30%。首先產(chǎn)生一個(gè)隨機(jī)數(shù),這里的權(quán)重總和是100,分為三個(gè)區(qū)間,1~30,31~70,71~100。自然隨機(jī)數(shù)的范圍也在100以內(nèi)。假如這個(gè)隨機(jī)數(shù)是49,很明顯49是在31~70這個(gè)區(qū)間內(nèi),那么可確定該次隨機(jī)產(chǎn)生的武將是B。思路是這樣,但是怎么用算法去實(shí)現(xiàn)呢?

對(duì)于確定的情況,一個(gè)最簡(jiǎn)單的方法是這樣:

  1. int rand = 49;//隨機(jī)數(shù),這里假設(shè)是個(gè)給定值  
  2.  int A = 30;  
  3.  int B = 40;  
  4.  int C = 30;  
  5.  if(rand>0 && rand<=A){  
  6.  return A;  
  7.  }  
  8.  else if(rand>A && rand<=A+B){  
  9.  return B;  
  10.  }  
  11.  else if(rand>A+B && rand<=A+B+C){  
  12.  return C;  
  13.  } 

但是上面說過,這個(gè)權(quán)重的總和是不確定的,武將個(gè)數(shù)也不確定,這樣做肯定不行。

后來想到了一個(gè)簡(jiǎn)單的辦法:

  1. int rand = 49;//隨機(jī)數(shù)  
  2. int sum= 0;  
  3. List<武將> list = new ArrayList<武將>();//假設(shè)這是一個(gè)武將列表  
  4. for(int i=0;i<list.size();i++){  
  5. sum = list.get(i).getWeight();//武將的出現(xiàn)機(jī)率  
  6. if(rand<=sum){  
  7. return i;//返回該武將對(duì)應(yīng)的索引  
  8. }  

不知道這是不是一個(gè)好的辦法?或者有什么不妥之處?

原文鏈接:http://www.cnblogs.com/wuchen/archive/2012/02/23/2365484.html

【編輯推薦】

  1. 通用Java文件上傳和下載組件的設(shè)計(jì)與實(shí)現(xiàn)
  2. 趕緊重寫Java的時(shí)間和日期API吧!
  3. 談?wù)凧ava的自動(dòng)裝箱和拆箱
  4. 如何進(jìn)行Java EE性能測(cè)試與調(diào)優(yōu)
  5. Java 8新功能詳細(xì)解讀
責(zé)任編輯:林師授 來源: 咖啡陪伴宇的博客
相關(guān)推薦

2009-02-25 09:05:09

路由算法路由器

2011-04-19 10:45:44

路由算法

2011-05-10 16:36:03

SEO關(guān)鍵詞

2015-09-16 10:47:32

2015-08-06 13:19:51

2011-05-24 10:51:18

關(guān)鍵詞

2021-06-14 08:10:06

網(wǎng)絡(luò)攻擊JBS網(wǎng)絡(luò)安全

2009-12-22 15:28:45

ASP.NET AJA

2019-06-04 08:34:52

2022-12-19 15:32:33

2011-10-11 09:15:58

移動(dòng)應(yīng)用PhoneGapGoodDay

2014-07-21 15:08:53

2024-01-15 08:52:34

自動(dòng)駕駛目標(biāo)檢測(cè)

2020-09-10 09:49:02

企業(yè)架構(gòu)數(shù)字化敏捷

2023-11-01 11:18:07

ITCIO

2011-03-25 15:59:52

稅務(wù)申報(bào)詐騙邁克菲

2020-09-30 14:12:07

網(wǎng)絡(luò)安全

2021-12-09 11:09:30

數(shù)字化轉(zhuǎn)型

2017-04-07 13:18:13

2021-08-05 05:01:35

負(fù)載均衡算法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人不卡一区二区 | 日韩欧美在线观看 | 黑人巨大精品欧美一区二区免费 | www.激情.com | 欧美xxxx性xxxxx高清 | 欧美bondage紧缚视频 | 国产精品一区二 | 美国一级毛片a | 青青久久久 | 91精品国产综合久久婷婷香蕉 | 一区二区国产精品 | 一级片免费网站 | 日本超碰 | 欧美黄色精品 | 黄网站涩免费蜜桃网站 | 久草视频观看 | 成人国产精品久久 | 久久久激情视频 | 一区二区三区视频在线 | 天堂一区 | 美女黄视频网站 | 免费看一区二区三区 | 大学生a级毛片免费视频 | 日日骚av| 欧美精品1区2区3区 精品国产欧美一区二区 | 精品久久久久久久久久久下田 | 黄色大片免费播放 | 中文字幕在线观看视频一区 | 国产成人精品午夜视频免费 | 国产精品久久久久9999鸭 | 欧美日韩一区二区三区四区 | 天天爽一爽| 国产高清视频一区 | 免费成人在线网站 | 国产欧美在线 | 国产午夜高清 | 中文字幕不卡一区 | 欧美成人影院 | 国产福利在线 | 精品国产精品一区二区夜夜嗨 | 99久久久无码国产精品 |