What we've noticed is that we very rarely get mirror matchups--instead of a 1/3 chance, it's more like a 1/20 chance. We've played a ton of games, and it's extremely improbable for it to be a statistical anomaly. Wonder if anyone knows something about this?
Few Mirrors when Both Players Random
Forum Index > BW General |
Xentronium
United States12 Posts
What we've noticed is that we very rarely get mirror matchups--instead of a 1/3 chance, it's more like a 1/20 chance. We've played a ton of games, and it's extremely improbable for it to be a statistical anomaly. Wonder if anyone knows something about this? | ||
Cokefreak
Finland8094 Posts
| ||
N.geNuity
United States5111 Posts
| ||
N.geNuity
United States5111 Posts
http://www.teamliquid.net/forum/viewmessage.php?topic_id=367755 On September 12 2012 05:04 Wgtourmaps wrote: If you search "Random" on this site, there is a page where a programmer talks about SC's engine being programmed that way. It is nice when everyone is playing Random in a 1v1 or 2v2, you will have a somewhat better idea of what their races might be. Thank you for the nice comments guys. he also talked about all random in 2v2 ending up as 2 of race x, 1 of race y, 1 of race z. But just searching "random" is not being helpful at the moment in bw or bw strategy for me. | ||
BiYon
Sweden10 Posts
If the game actually has a perfect race distribution when you roll random (every race has exactly the same chance) then the law of big numbers should give you a mirror match-up every 3 games, on average. What does "a ton of games" mean. Does it mean 10k/20k or somewhere around 100 games? Generating a bigger sample set often "shows" the chance distribution. edit: yeah, edited the chances, 1/9 was for 1 mirror, 1/3 for any mirror! thanks~ | ||
jello_biafra
United Kingdom6632 Posts
| ||
Torenhire
United States11681 Posts
On May 18 2013 02:12 jello_biafra wrote: Well if you have 8 players in a game who all go random then you will always end up with 3X 3Y and 2Z so it's definitely not completely random. As proven by Race Wars haha. Though tbh I would really be interested in seeing "real" proof of this being the case. | ||
EchOne
United States2906 Posts
On May 18 2013 02:11 BiYon wrote: The chance of both of you getting the same race in the same game is (1/3)*(1/3)=(1/9). You flip the 3-sided coin twice, hoping to get the same value in both flips. If the game actually has a perfect race distribution when you roll random (every race has exactly the same chance) then the law of big numbers should give you a mirror match-up every 9 games, on average. What does "a ton of games" mean. Does it mean 10k/20k or somewhere around 100 games? Generating a bigger sample set often "shows" the chance distribution. Actually it's 1/3 because the alleged first 1/3 doesn't matter. P1 can be P, Z, or T... the only requirement is that P2 matches that. So it's like (3/3)*(1/3). If you look at it case-by-case, it's something like: + Show Spoiler + zp zt zz tz tp tt pz pt pp where mirror matches are 3/9. But yea Starcraft's RNG is not actually random. | ||
BiYon
Sweden10 Posts
On May 18 2013 02:28 EchOne wrote: Actually it's 1/3 because the alleged first 1/3 doesn't matter. P1 can be P, Z, or T... the only requirement is that P2 matches that. So it's like (3/3)*(1/3). If you look at it case-by-case, it's something like: + Show Spoiler + zp zt zz tz tp tt pz pt pp where mirror matches are 3/9. But yea Starcraft's RNG is not actually random. Yeah, I sat and thought about that and came back here to correct myself, 1/9 is for 1 specific mirror, 1/3 for any mirror, thanks. | ||
amazingxkcd
GRAND OLD AMERICA16375 Posts
On May 18 2013 01:23 Xentronium wrote: My brother and I play a lot of 1v1s on iccup, always choose random, and tell each other our race at the start of the match. What we've noticed is that we very rarely get mirror matchups--instead of a 1/3 chance, it's more like a 1/20 chance. We've played a ton of games, and it's extremely improbable for it to be a statistical anomaly. Wonder if anyone knows something about this? It's not a statistical anomaly AFAIK. I'm pretty sure that R1CH knows the most about it since he was talking about it in the last thread on this issue. From what I recalled, the programmers didn't want both players to random the same races 1/9 of the time, so there are some algorithms in place for that. | ||
LRM)TechnicS
Bulgaria1565 Posts
| ||
LRM)TechnicS
Bulgaria1565 Posts
| ||
iloveav
Poland1474 Posts
Its impossible for the game to choose both players at the same time, so tehre has to be 1 selected first and then the other. As an example, when i play vs a friend, he gets Toss 90%+ of the time (so far 100%), but if he does it vs another guy, he gets terran most times. It might have something to do with the ping :D. | ||
Xentronium
United States12 Posts
| ||
eviltomahawk
United States11133 Posts
| ||
Xentronium
United States12 Posts
http://www.teamliquid.net/forum/viewmessage.php?topic_id=37059¤tpage=2 http://www.teamliquid.net/forum/viewmessage.php?topic_id=89551 | ||
endy
Switzerland8970 Posts
Other very interesting things I noticed : If there are 4 players going random and no obs, there will always be at least one player of each race, so if your team is PT, you know the opponent is PZ, TZ or ZZ as soon as the game starts. Obs picking a race (usually Terran and lift CC in non-ums games) affect the behavior of the "random" algorithm. A 1v1 RvR game with an obs picking terran has more chances to get mirrors. Chances to get a mirror when picking race vs random are higher than when it's RvR, but less than 1/3rd that a real random algorithm would yield. edit : meh the links in the post above were covering that already. I guess there's no secret in a game released 15 years ago. On May 18 2013 04:27 eviltomahawk wrote: It would be cool if someone could get some statistics about this from a large sample size. It shouldn't be difficult. Hmmm it's actually not that easy because doing a study like this would consist of collecting replays from people and as far as I know there is no way to know from the replay file if a player went random or picked a race. Also picked race vs random and random vs random yield different results. | ||
tec27
United States3690 Posts
+ Show Spoiler [Technical Details for Future Reversers] + In 1.16.1: - RandomizeRaces() function is at 0x004A9A30 - GetRandomRace(int total_random_players) [ebx = generation_counter (number of random races generated thus far)] is at 0x004A94C0 Races are generated in groups of 3. That is, there is behavior defined for the first race, second race, and third race generated in a group. Players > 3 behave like what they are a multiple of (e.g. the fourth race generated follows the rules of the first race generated). Monitoring of what races have already been rolled for de-duping purposes also resets every 3 generations. States for each 3 person group First random: normal 33% chance for each race Second random: 50% chance of Zerg or Terran, followed by deduping logic:
Special Cases Exactly 2 total random players in a game
Exactly 3 total random players in a game
Exactly 6 total random players in a game
Notes
Notable Discoveries or tl;dr Probability of a mirror matchup in a 1v1, both players randoming: 1/24 Probability of a mirror matchup in a 1v1, only one player randoming: 1/3 Probability of a duplicated random race when exactly 3 players are randoming: 2/3 Probability of having 3 players with the same random race when exactly 6 players are randoming: 2/3 When 4, 5, 7, or 8 players are randoming, the distribution will always be even (i.e. {2,1,1} {2,2,1} {3,2,2} and {3,3,2} respectively). I also have the slot position randomization function, which looks to have its own set of interesting behavior, but I will save that for another day. | ||
Reason
United Kingdom2770 Posts
That's like the ultimate answer to this question! | ||
Sayle
United Kingdom3685 Posts
| ||
| ||