æ ¹æ®https://www.heroescounters.com/teampicker一个英雄与å¦ä¸€ä¸ªè‹±é›„有一个ååŒä»·å€¼ï¼Œé£Žæš´è‹±é›„有60多个英雄,æ¯ä¸ªè‹±é›„都具有ååŒä½œç”¨ä»·å€¼ï¼Œä¾‹å¦‚:
HeroID Synergy.With.HeroID Synergy.Points
1 2 97
1 3 95
1 4 94
45 1 2
45 2 11
风暴英雄团队ä¸æœ‰5ä½è‹±é›„,团队的全部ååŒæ•ˆåº”由公å¼è®¡ç®—:
Team_total_synergy = Synergy_Points(Hero1 with Hero2) +
mean(Synergy_Points(Hero3 + Hero1) + Synergy_Points(Hero3 + Hero2)) +
mean(Synergy_Points(Hero4 + Hero1) + Synergy_Points(Hero4 + Hero2) + Synergy_Points(Hero4 + Hero3)
[And so on... till Hero5]
解释公å¼ï¼šHero 1å’ŒHero 2ååŒä½œç”¨åŽçš„æ¯ä¸ªSynergy值是通过Hero与团队其他æˆå‘˜çš„å¹³å‡å€¼è®¡ç®—的,当Hero5åŠ èµ·æ¥æ—¶ï¼Œæˆ‘得到了团队的ååŒä½œç”¨ï¼Œæ€»ç»“了所有的值
我的ç”案是,我如何找到(使用Python或R)团队,给出该公å¼å¯èƒ½äº§ç”Ÿçš„最大ååŒä½œç”¨ï¼Œä»¥åŠå¦‚何编写代ç ä»¥æ‰¾åˆ°å®ƒï¼Œå› ä¸ºæœ‰64个英雄(大约)的å¯èƒ½æ€§ã€‚< / p>
ç”案 0 :(得分:2)
最简å•çš„方法是通过计算所有64^5
英雄组åˆå¹¶è®¡ç®—其总ååŒåˆ†æ•°æ¥å¼ºåˆ¶å®ƒã€‚然而,在大多数计算机上这需è¦å‡ 分钟到一个å°æ—¶ã€‚
更有效的方法是首先将Synergy.Points列从最高到最低排åºã€‚然åŽé—®é¢˜å°±å˜æˆæ‰¾åˆ°äº†ä¸€æ¡â€œè·¯å¾„â€ã€‚五个英雄,使得路径ä¸çš„最高ä½ç½®åœ¨æ¡Œé¢ä¸Šå°½å¯èƒ½ä½Žï¼ˆå³ä¸Žæœ€å¤§çš„ååŒä½œç”¨ç›¸å…³è”)。
è·¯å¾„æ˜¯ä¸€ä¸ªè‹±é›„åˆ—è¡¨ï¼Œè¿™æ ·ä½ å°±å¯ä»¥ä»Žè‹±é›„è·³åˆ°ç›¸å…³è‹±é›„ï¼Œç›´åˆ°ä½ æœ‰äº”ä¸ªç‹¬ç‰¹çš„è‹±é›„ã€‚åœ¨ä¸‹è¡¨ä¸ï¼Œè·¯å¾„为1 - &gt; 2 - &gt; 5 - &gt; 6 - &gt; 7.与æ¤è·¯å¾„å…³è”的表ä¸çš„ä½ç½®ä¸º1,4,5,2,其ä¸æœ€é«˜ç‚¹ä¸º5.
这将ä¿è¯æ€»ååŒä½œç”¨æœ€é«˜ã€‚
HeroID Synergy.With.HeroID Synergy.Points
1 2 97
6 7 95
1 4 94
2 5 11
5 6 2
至于python代ç ,这有点棘手......我å°è¯•äº†å¤§çº¦20分钟,但我å‘现有很多并å‘症。例如,如果您的程åºä¸å°å¿ƒï¼Œè·¯å¾„å¯èƒ½ä¼šæœ‰ä¸€ä¸ªå¯èƒ½ä¼šäº§ç”Ÿæ— é™å¾ªçŽ¯çš„循环。
如果您想è¦æ‰§è¡Œæ¤è¿‡ç¨‹ä¸€æ¬¡ï¼Œä»¥ä¾¿ä¸ºæ¤æ¸¸æˆæ‰¾åˆ°æœ€æœ‰æ•ˆçš„团队,我会å°è¯•ä½¿ç”¨å¼ºåŠ›æ–¹æ³•ã€‚如果您希望能够一éåˆä¸€é地è¿è¡Œæ¤ä»£ç ,我å¯ä»¥å°†å…¶è®¾ç½®ä¸ºè®¡ç®—机科å¦å †æ ˆæº¢å‡ºï¼Œå¹¶èŽ·å–和算法在pythonä¸æ‰§è¡Œæ¤æ“作。
我希望有帮助:)