fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Ideone
  6. {
  7. public static void main (String[] args) throws java.lang.Exception
  8. {
  9. final int battles = 1000;
  10. final int troops = 100;
  11. for(int t=2;t<troops;t++){
  12. int attWins = 0, attTroops = 0;
  13. int defWins = 0, defTroops = 0;
  14.  
  15. for(int i=0;i<battles;i++){
  16. int a = t;
  17. int d = t;
  18. while(a > 1 && d > 0){
  19. int result = roll(Math.min(3, a-1), Math.min(2, d));
  20. if(result == 0){
  21. a--; d--;
  22. } else if (result < 0){
  23. a += result;
  24. } else {
  25. d -= result;
  26. }
  27. }
  28. if(d < 1){
  29. attWins++;
  30. attTroops += a;
  31. }else if(a < 2){
  32. defWins++;
  33. defTroops += d;
  34. }
  35. }
  36. System.out.println("\n Troop level: " + t);
  37. System.out.println("Attacker wins " + attWins + " times.\tAverage survivors: " + (attTroops / (double)attWins));
  38. System.out.println("Defender wins " + defWins + " times.\tAverage survivors: " + (defTroops / (double)defWins));
  39. }
  40. }
  41.  
  42. // 0 is split, + is wins for attacker, - is wins for defender
  43. static int roll(int a, int d){
  44. ArrayList<Integer> att = new ArrayList<Integer>(3);
  45. ArrayList<Integer> def = new ArrayList<Integer>(2);
  46. for(int i=0;i<a;i++)
  47. att.add((int)(Math.random()*6) + 1);
  48. for(int i=0;i<d;i++)
  49. def.add((int)(Math.random()*6) + 1);
  50.  
  51. Collections.sort(att);
  52. Collections.sort(def);
  53.  
  54. int result = 0;
  55. if(att.get(a-1) > def.get(d-1))
  56. result++;
  57. else
  58. result--;
  59. if(a>1 && d > 1)
  60. if(att.get(a-2) > def.get(d-2))
  61. result++;
  62. else
  63. result--;
  64.  
  65. return result;
  66. }
  67.  
  68. }
Success #stdin #stdout 4.38s 380800KB
stdin
Standard input is empty
stdout
 Troop level: 2
Attacker wins 115 times.	Average survivors: 2.0
Defender wins 885 times.	Average survivors: 1.8338983050847457

 Troop level: 3
Attacker wins 220 times.	Average survivors: 2.609090909090909
Defender wins 780 times.	Average survivors: 2.428205128205128

 Troop level: 4
Attacker wins 331 times.	Average survivors: 3.29607250755287
Defender wins 669 times.	Average survivors: 2.787742899850523

 Troop level: 5
Attacker wins 375 times.	Average survivors: 3.7493333333333334
Defender wins 625 times.	Average survivors: 3.1728

 Troop level: 6
Attacker wins 394 times.	Average survivors: 4.241116751269035
Defender wins 606 times.	Average survivors: 3.438943894389439

 Troop level: 7
Attacker wins 460 times.	Average survivors: 4.397826086956521
Defender wins 540 times.	Average survivors: 3.838888888888889

 Troop level: 8
Attacker wins 423 times.	Average survivors: 4.702127659574468
Defender wins 577 times.	Average survivors: 4.076256499133449

 Troop level: 9
Attacker wins 471 times.	Average survivors: 4.961783439490445
Defender wins 529 times.	Average survivors: 4.170132325141777

 Troop level: 10
Attacker wins 487 times.	Average survivors: 5.336755646817249
Defender wins 513 times.	Average survivors: 4.592592592592593

 Troop level: 11
Attacker wins 502 times.	Average survivors: 5.438247011952191
Defender wins 498 times.	Average survivors: 4.403614457831325

 Troop level: 12
Attacker wins 477 times.	Average survivors: 5.8427672955974845
Defender wins 523 times.	Average survivors: 4.661567877629063

 Troop level: 13
Attacker wins 520 times.	Average survivors: 6.051923076923077
Defender wins 480 times.	Average survivors: 4.672916666666667

 Troop level: 14
Attacker wins 513 times.	Average survivors: 6.228070175438597
Defender wins 487 times.	Average survivors: 4.782340862422998

 Troop level: 15
Attacker wins 528 times.	Average survivors: 6.388257575757576
Defender wins 472 times.	Average survivors: 5.413135593220339

 Troop level: 16
Attacker wins 525 times.	Average survivors: 6.733333333333333
Defender wins 475 times.	Average survivors: 5.136842105263158

 Troop level: 17
Attacker wins 571 times.	Average survivors: 6.774080560420315
Defender wins 429 times.	Average survivors: 5.428904428904429

 Troop level: 18
Attacker wins 554 times.	Average survivors: 7.308664259927798
Defender wins 446 times.	Average survivors: 5.482062780269058

 Troop level: 19
Attacker wins 553 times.	Average survivors: 7.267631103074141
Defender wins 447 times.	Average survivors: 5.666666666666667

 Troop level: 20
Attacker wins 583 times.	Average survivors: 7.605488850771869
Defender wins 417 times.	Average survivors: 5.585131894484412

 Troop level: 21
Attacker wins 590 times.	Average survivors: 7.596610169491526
Defender wins 410 times.	Average survivors: 5.541463414634146

 Troop level: 22
Attacker wins 597 times.	Average survivors: 7.606365159128978
Defender wins 403 times.	Average survivors: 5.67741935483871

 Troop level: 23
Attacker wins 641 times.	Average survivors: 8.074882995319813
Defender wins 359 times.	Average survivors: 6.3314763231197775

 Troop level: 24
Attacker wins 556 times.	Average survivors: 8.568345323741006
Defender wins 444 times.	Average survivors: 6.0608108108108105

 Troop level: 25
Attacker wins 597 times.	Average survivors: 8.407035175879397
Defender wins 403 times.	Average survivors: 6.205955334987593

 Troop level: 26
Attacker wins 615 times.	Average survivors: 8.720325203252033
Defender wins 385 times.	Average survivors: 6.041558441558442

 Troop level: 27
Attacker wins 618 times.	Average survivors: 8.972491909385113
Defender wins 382 times.	Average survivors: 6.56544502617801

 Troop level: 28
Attacker wins 622 times.	Average survivors: 8.893890675241158
Defender wins 378 times.	Average survivors: 6.674603174603175

 Troop level: 29
Attacker wins 626 times.	Average survivors: 8.947284345047922
Defender wins 374 times.	Average survivors: 6.467914438502674

 Troop level: 30
Attacker wins 631 times.	Average survivors: 9.538827258320127
Defender wins 369 times.	Average survivors: 6.355013550135501

 Troop level: 31
Attacker wins 645 times.	Average survivors: 9.65891472868217
Defender wins 355 times.	Average survivors: 6.856338028169014

 Troop level: 32
Attacker wins 642 times.	Average survivors: 9.761682242990654
Defender wins 358 times.	Average survivors: 6.645251396648045

 Troop level: 33
Attacker wins 662 times.	Average survivors: 9.978851963746223
Defender wins 338 times.	Average survivors: 6.585798816568047

 Troop level: 34
Attacker wins 654 times.	Average survivors: 10.027522935779816
Defender wins 346 times.	Average survivors: 6.809248554913295

 Troop level: 35
Attacker wins 663 times.	Average survivors: 9.772247360482655
Defender wins 337 times.	Average survivors: 6.795252225519288

 Troop level: 36
Attacker wins 694 times.	Average survivors: 10.247838616714697
Defender wins 306 times.	Average survivors: 6.816993464052287

 Troop level: 37
Attacker wins 655 times.	Average survivors: 10.552671755725191
Defender wins 345 times.	Average survivors: 7.281159420289855

 Troop level: 38
Attacker wins 674 times.	Average survivors: 10.547477744807122
Defender wins 326 times.	Average survivors: 7.628834355828221

 Troop level: 39
Attacker wins 665 times.	Average survivors: 10.74436090225564
Defender wins 335 times.	Average survivors: 7.626865671641791

 Troop level: 40
Attacker wins 664 times.	Average survivors: 11.359939759036145
Defender wins 336 times.	Average survivors: 7.3125

 Troop level: 41
Attacker wins 693 times.	Average survivors: 11.102453102453103
Defender wins 307 times.	Average survivors: 7.664495114006515

 Troop level: 42
Attacker wins 657 times.	Average survivors: 11.462709284627094
Defender wins 343 times.	Average survivors: 7.399416909620991

 Troop level: 43
Attacker wins 674 times.	Average survivors: 11.689910979228486
Defender wins 326 times.	Average survivors: 7.331288343558282

 Troop level: 44
Attacker wins 660 times.	Average survivors: 11.878787878787879
Defender wins 340 times.	Average survivors: 7.588235294117647

 Troop level: 45
Attacker wins 682 times.	Average survivors: 11.934017595307918
Defender wins 318 times.	Average survivors: 7.59748427672956

 Troop level: 46
Attacker wins 707 times.	Average survivors: 11.858557284299858
Defender wins 293 times.	Average survivors: 7.771331058020478

 Troop level: 47
Attacker wins 688 times.	Average survivors: 12.190406976744185
Defender wins 312 times.	Average survivors: 7.730769230769231

 Troop level: 48
Attacker wins 711 times.	Average survivors: 12.555555555555555
Defender wins 289 times.	Average survivors: 8.065743944636678

 Troop level: 49
Attacker wins 684 times.	Average survivors: 12.2953216374269
Defender wins 316 times.	Average survivors: 8.104430379746836

 Troop level: 50
Attacker wins 688 times.	Average survivors: 12.736918604651162
Defender wins 312 times.	Average survivors: 8.442307692307692

 Troop level: 51
Attacker wins 716 times.	Average survivors: 12.64804469273743
Defender wins 284 times.	Average survivors: 8.306338028169014

 Troop level: 52
Attacker wins 713 times.	Average survivors: 12.73352033660589
Defender wins 287 times.	Average survivors: 7.7526132404181185

 Troop level: 53
Attacker wins 711 times.	Average survivors: 13.316455696202532
Defender wins 289 times.	Average survivors: 8.055363321799309

 Troop level: 54
Attacker wins 722 times.	Average survivors: 13.166204986149584
Defender wins 278 times.	Average survivors: 8.503597122302159

 Troop level: 55
Attacker wins 734 times.	Average survivors: 13.619891008174386
Defender wins 266 times.	Average survivors: 8.319548872180452

 Troop level: 56
Attacker wins 734 times.	Average survivors: 13.693460490463215
Defender wins 266 times.	Average survivors: 7.676691729323308

 Troop level: 57
Attacker wins 719 times.	Average survivors: 13.92489568845619
Defender wins 281 times.	Average survivors: 8.95373665480427

 Troop level: 58
Attacker wins 723 times.	Average survivors: 13.822959889349931
Defender wins 277 times.	Average survivors: 8.342960288808664

 Troop level: 59
Attacker wins 739 times.	Average survivors: 14.569688768606225
Defender wins 261 times.	Average survivors: 8.53639846743295

 Troop level: 60
Attacker wins 742 times.	Average survivors: 14.212938005390836
Defender wins 258 times.	Average survivors: 9.023255813953488

 Troop level: 61
Attacker wins 742 times.	Average survivors: 13.929919137466307
Defender wins 258 times.	Average survivors: 8.36046511627907

 Troop level: 62
Attacker wins 744 times.	Average survivors: 14.733870967741936
Defender wins 256 times.	Average survivors: 8.609375

 Troop level: 63
Attacker wins 733 times.	Average survivors: 14.73806275579809
Defender wins 267 times.	Average survivors: 8.104868913857677

 Troop level: 64
Attacker wins 747 times.	Average survivors: 14.60508701472557
Defender wins 253 times.	Average survivors: 8.403162055335969

 Troop level: 65
Attacker wins 750 times.	Average survivors: 15.374666666666666
Defender wins 250 times.	Average survivors: 8.464

 Troop level: 66
Attacker wins 724 times.	Average survivors: 15.111878453038674
Defender wins 276 times.	Average survivors: 9.278985507246377

 Troop level: 67
Attacker wins 765 times.	Average survivors: 15.35686274509804
Defender wins 235 times.	Average survivors: 8.817021276595744

 Troop level: 68
Attacker wins 767 times.	Average survivors: 15.352020860495436
Defender wins 233 times.	Average survivors: 9.13733905579399

 Troop level: 69
Attacker wins 758 times.	Average survivors: 15.385224274406333
Defender wins 242 times.	Average survivors: 8.202479338842975

 Troop level: 70
Attacker wins 747 times.	Average survivors: 15.732262382864793
Defender wins 253 times.	Average survivors: 8.837944664031621

 Troop level: 71
Attacker wins 778 times.	Average survivors: 15.919023136246787
Defender wins 222 times.	Average survivors: 8.26126126126126

 Troop level: 72
Attacker wins 756 times.	Average survivors: 15.636243386243386
Defender wins 244 times.	Average survivors: 8.80327868852459

 Troop level: 73
Attacker wins 753 times.	Average survivors: 15.638778220451528
Defender wins 247 times.	Average survivors: 9.429149797570851

 Troop level: 74
Attacker wins 764 times.	Average survivors: 16.19764397905759
Defender wins 236 times.	Average survivors: 9.347457627118644

 Troop level: 75
Attacker wins 778 times.	Average survivors: 16.874035989717225
Defender wins 222 times.	Average survivors: 9.95045045045045

 Troop level: 76
Attacker wins 793 times.	Average survivors: 17.03530895334174
Defender wins 207 times.	Average survivors: 8.743961352657005

 Troop level: 77
Attacker wins 780 times.	Average survivors: 16.612820512820512
Defender wins 220 times.	Average survivors: 9.731818181818182

 Troop level: 78
Attacker wins 774 times.	Average survivors: 16.700258397932817
Defender wins 226 times.	Average survivors: 8.929203539823009

 Troop level: 79
Attacker wins 772 times.	Average survivors: 16.71502590673575
Defender wins 228 times.	Average survivors: 9.31140350877193

 Troop level: 80
Attacker wins 784 times.	Average survivors: 17.114795918367346
Defender wins 216 times.	Average survivors: 9.912037037037036

 Troop level: 81
Attacker wins 775 times.	Average survivors: 17.607741935483872
Defender wins 225 times.	Average survivors: 9.231111111111112

 Troop level: 82
Attacker wins 775 times.	Average survivors: 17.68516129032258
Defender wins 225 times.	Average survivors: 9.12

 Troop level: 83
Attacker wins 805 times.	Average survivors: 17.093167701863354
Defender wins 195 times.	Average survivors: 10.025641025641026

 Troop level: 84
Attacker wins 767 times.	Average survivors: 17.458930899608866
Defender wins 233 times.	Average survivors: 9.793991416309012

 Troop level: 85
Attacker wins 787 times.	Average survivors: 18.133418043202035
Defender wins 213 times.	Average survivors: 9.807511737089202

 Troop level: 86
Attacker wins 765 times.	Average survivors: 18.38300653594771
Defender wins 235 times.	Average survivors: 9.74468085106383

 Troop level: 87
Attacker wins 764 times.	Average survivors: 18.272251308900522
Defender wins 236 times.	Average survivors: 9.377118644067796

 Troop level: 88
Attacker wins 789 times.	Average survivors: 18.520912547528518
Defender wins 211 times.	Average survivors: 9.298578199052132

 Troop level: 89
Attacker wins 781 times.	Average survivors: 18.66709346991037
Defender wins 219 times.	Average survivors: 10.287671232876713

 Troop level: 90
Attacker wins 749 times.	Average survivors: 18.40320427236315
Defender wins 251 times.	Average survivors: 9.50996015936255

 Troop level: 91
Attacker wins 799 times.	Average survivors: 18.118898623279097
Defender wins 201 times.	Average survivors: 9.791044776119403

 Troop level: 92
Attacker wins 807 times.	Average survivors: 19.490706319702603
Defender wins 193 times.	Average survivors: 10.300518134715025

 Troop level: 93
Attacker wins 805 times.	Average survivors: 19.03105590062112
Defender wins 195 times.	Average survivors: 9.994871794871795

 Troop level: 94
Attacker wins 810 times.	Average survivors: 18.135802469135804
Defender wins 190 times.	Average survivors: 10.810526315789474

 Troop level: 95
Attacker wins 788 times.	Average survivors: 19.016497461928935
Defender wins 212 times.	Average survivors: 9.882075471698114

 Troop level: 96
Attacker wins 799 times.	Average survivors: 19.54192740926158
Defender wins 201 times.	Average survivors: 9.7363184079602

 Troop level: 97
Attacker wins 820 times.	Average survivors: 19.196341463414633
Defender wins 180 times.	Average survivors: 9.3

 Troop level: 98
Attacker wins 791 times.	Average survivors: 19.15170670037927
Defender wins 209 times.	Average survivors: 9.368421052631579

 Troop level: 99
Attacker wins 794 times.	Average survivors: 20.216624685138537
Defender wins 206 times.	Average survivors: 9.37864077669903