Dice generator - the non-conspiracy take
Forum rules
Please DO NOT POST BUGS on this forum. Please report (and vote) bugs on : https://boardgamearena.com/bugs
Please DO NOT POST BUGS on this forum. Please report (and vote) bugs on : https://boardgamearena.com/bugs
Re: Dice generator - the non-conspiracy take
I answer you in this thread since the discussion is spread between two threads otherwise. Since I do not know the game, could you confirm that it is a 10-sided die that is rolled, i.e. all values from 1 to 10 are possible and should be equally likely?Deckeon wrote: ↑27 February 2026, 17:26ok thank you - i've never looked through game logs before. This helps I will track doubles too (11 22 33 44 55 etc) as I think this is actually issue with that.Romain672 wrote: ↑27 February 2026, 15:46 The logs are enough, in that game: https://boardgamearena.com/gamereview?table=789679655 , you don't have to open the replay, just search for the word 'roll' and it seem you see all the rolls done.
That game:
doubles 7 times (side note and i don't think relevant: 3 times with 11 -in game a 1 is always a hit so this really gets noticed)
no triples this game.
52 rolls.
Seems high no?
I will fire up a bunch of games for march and post results... here? or maybe other thread...maybe both. hahaha
If a game with 52 rolls is an usual one then you should expect 5 doubles per game. But note that this is the expected value and any value from 2 to 10 doubles should not bother you (unless it happens in *every* game that the doubles are more often than the expected value).
If a usual game has approx. 50 rolls per game then you should have 1 triple every second game you play - on average.
Please note that you have to analyze a series of consecutive games and it is completely worthless if you tell us only those games that support your theory. You have played approx. 50 games, thus you should be able to show us approx. 25 games where the number of doubles and triples are higher than the expected value. Only if you give a complete analysis (i.e., also of those games where the number of doubles and triples are less than expected) we can judge if there is a problem with the randomness.
If the game logs are not accessible for all games then you could analyze your next 20 games you play. I think we can continue the discussion here even if the topic is not related to Catan at all.
Re: Dice generator - the non-conspiracy take
histogram entries for doubles from 52 d10 rolls:
Julia code to get those numbers:
Code: Select all
number of bin
doubles height
0 46
1 263
2 730
3 1325
4 1767
5 1845
6 1572
7 1123
8 686
9 364
10 170
11 71
12 26
>= 13 12Julia code to get those numbers:
Code: Select all
julia> before,after = zeros(BigInt,53),zeros(BigInt,53);
julia> after[1] = BigInt(1)
1
julia> for _ in 2:52
for i in 1:53
before[i] = after[i]
after[i] = BigInt(0)
end
for i in 1:52
after[i] += BigInt(9)*before[i]
after[i+1] += before[i]
end
if before[53] != BigInt(0)
error("arrays were not long-enough")
end
end
julia> (after[52],after[53]) == (BigInt(1),BigInt(0))
true
julia> sum(after) == BigInt(10)^BigInt(51)
true
julia> sum(after[i] for i in 14:53) < after[13] < sum(after[i] for i in 13:53) < after[1] < after[12]
true
julia> freqofcappedcount = [after[i] for i in 1:14];
julia> freqofcappedcount[14] = sum(after[i] for i in 14:53)
1226149989198688350756375922675756793966172479740
julia> flooredquotients = [div(freq,BigInt(10)^BigInt(47),RoundDown) for freq in freqofcappedcount];
julia> sum(flooredquotients)
9994
julia> remainders = [rem(freq,BigInt(10)^BigInt(47)) for freq in freqofcappedcount];
julia> sort!(remainders);
julia> cutoff = div(remainders[8]+remainders[9],BigInt(2),RoundNearest)
38971752295788042315123905555939794094376993490
julia> remainders[8] < cutoff < remainders[9]
true
julia> histogramentries = [div(freq,BigInt(10)^BigInt(47),RoundDown)+BigInt(cutoff < rem(freq,BigInt(10)^BigInt(47))) for freq in freqofcappedcount];
julia> sum(histogramentries)
10000
julia> histogramentries
14-element Vector{BigInt}:
46
263
730
1325
1767
1845
1572
1123
686
364
170
71
26
12
julia> Re: Dice generator - the non-conspiracy take
Yea we can go with games from now till end of march (or sooner depending on if I'm convinced I'm wrong). I have not been playing much. It might be nice to play game where I don't care about them, will try to get big space battles on purpose with lots of dice rolling.
Many recent wins/losses for me are through some amazing subterfuge - for instance that one game where it looks like the log was truncated, my opponent fooled me with a double decoy and stealth ships - so there was no battles. Got to my home planet with no fight and smoked me with only that one fight. So the game has great value on BGA even if I am right about goofy rolling schemes.
10 sided dice are rolled. yes 10% chance any double, 1% any triple.
I'm going to track 1s separate for 11 is 1/100 and 111 1/1000 for my own interest really but if it is a noticeable outlier it will be worth noting.
Many recent wins/losses for me are through some amazing subterfuge - for instance that one game where it looks like the log was truncated, my opponent fooled me with a double decoy and stealth ships - so there was no battles. Got to my home planet with no fight and smoked me with only that one fight. So the game has great value on BGA even if I am right about goofy rolling schemes.
10 sided dice are rolled. yes 10% chance any double, 1% any triple.
I'm going to track 1s separate for 11 is 1/100 and 111 1/1000 for my own interest really but if it is a noticeable outlier it will be worth noting.
Re: Dice generator - the non-conspiracy take
Thank you, Gulchen, for the data. I was too lazy to calculate the 95% confidence interval, but my guess of 2 to 10 doubles per game was almost spot on. I should have said, that you should not be surprised if you get a result between 2 and 9 doubles in such a game (meaning that in 95% of all games you land in this interval). 7 doubles is a very likely outcome in a random 52-roll game.Gulchen wrote: ↑27 February 2026, 19:16 histogram entries for doubles from 52 d10 rolls:
Code: Select all
number of bin doubles height 0 46 1 263 2 730 3 1325 4 1767 5 1845 6 1572 7 1123 8 686 9 364 10 170 11 71 12 26 >= 13 12
Julia code to get those numbers:
Code: Select all
julia> before,after = zeros(BigInt,53),zeros(BigInt,53); julia> after[1] = BigInt(1) 1 julia> for _ in 2:52 for i in 1:53 before[i] = after[i] after[i] = BigInt(0) end for i in 1:52 after[i] += BigInt(9)*before[i] after[i+1] += before[i] end if before[53] != BigInt(0) error("arrays were not long-enough") end end julia> (after[52],after[53]) == (BigInt(1),BigInt(0)) true julia> sum(after) == BigInt(10)^BigInt(51) true julia> sum(after[i] for i in 14:53) < after[13] < sum(after[i] for i in 13:53) < after[1] < after[12] true julia> freqofcappedcount = [after[i] for i in 1:14]; julia> freqofcappedcount[14] = sum(after[i] for i in 14:53) 1226149989198688350756375922675756793966172479740 julia> flooredquotients = [div(freq,BigInt(10)^BigInt(47),RoundDown) for freq in freqofcappedcount]; julia> sum(flooredquotients) 9994 julia> remainders = [rem(freq,BigInt(10)^BigInt(47)) for freq in freqofcappedcount]; julia> sort!(remainders); julia> cutoff = div(remainders[8]+remainders[9],BigInt(2),RoundNearest) 38971752295788042315123905555939794094376993490 julia> remainders[8] < cutoff < remainders[9] true julia> histogramentries = [div(freq,BigInt(10)^BigInt(47),RoundDown)+BigInt(cutoff < rem(freq,BigInt(10)^BigInt(47))) for freq in freqofcappedcount]; julia> sum(histogramentries) 10000 julia> histogramentries 14-element Vector{BigInt}: 46 263 730 1325 1767 1845 1572 1123 686 364 170 71 26 12 julia>
Can you also give us the same data for triples? Without calculating I would guess that it could look something like:
number of triples: occurrences out of 10.000
0: 68.000
1: 22.000
2: 8.000
3: 1.000
4+: 1.000
I.e., my guess is that you have triples in approx. 30% of all games (of length 52 rolls). But since more than 1 triple can happen in a game the expected value of triples per game is close to 1 triple per game...
Re: Dice generator - the non-conspiracy take
for 52 d10 rolls:
Just like my above post, these are from applying the Largest Remainder Method
to the exact probabilities, rather than from Monte Carlo. The Julia code is below.
Code: Select all
number of occurrences
triples out of 100000
0 63050
1 26808
2 7814
3 1856
4 385
5 72
6 13
7 2
>= 8 0Just like my above post, these are from applying the Largest Remainder Method
to the exact probabilities, rather than from Monte Carlo. The Julia code is below.
Code: Select all
julia> "right coordinate = 1+8 represents _at least_ 8 triples .";
julia> before,after = zeros(BigInt,2,9),zeros(BigInt,2,9);
julia> "The left coordinate is 2 when the previous two rolls are equal and 1 when they are not equal.";
julia> after[1,1],after[2,1] = BigInt(9),BigInt(1)
(9, 1)
julia> for _ in 3:52
for i in eachindex(before,after)
before[i] = after[i]
after[i] = BigInt(0)
end
for i in 1:9
after[1,i] += BigInt(9)*before[1,i]
after[2,i] += before[1,i]
after[1,i] += BigInt(9)*before[2,i]
after[2,min(9,i+1)] += before[2,i]
end
end
julia> sum(after) == BigInt(10)^BigInt(51)
true
julia> exactcounts = [after[1,i]+after[2,i] for i in 1:9];
julia> flooredquotients = [div(freq,BigInt(10)^BigInt(46),RoundDown) for freq in exactcounts];
julia> sum(flooredquotients)
99996
julia> remainders = [rem(freq,BigInt(10)^BigInt(46)) for freq in exactcounts];
julia> sort!(remainders);
julia> cutoff = div(remainders[5]+remainders[6],BigInt(2),RoundNearest)
5216167804100385420887956005587272694173431082
julia> remainders[5] < cutoff < remainders[6]
true
julia> histogramentries = [div(freq,BigInt(10)^BigInt(46),RoundDown)+BigInt(cutoff < rem(freq,BigInt(10)^BigInt(46))) for freq in exactcounts];
julia> sum(histogramentries)
100000
julia> histogramentries
9-element Vector{BigInt}:
63050
26808
7814
1856
385
72
13
2
0
julia> Re: Dice generator - the non-conspiracy take
Unfortunately I dont know the programming language Julia. But I can interpret your results.
Thus we can tell Deckeon that he should find triples in 37% of his games - if they include 52 dice rolls. It seems that the specific game varies widely in number of dice rolled thus the 37% are only a rough estimate. Definitely triples are not rare in this game - even with 10-sided dice.
I like the approach of Deckeon that he is willing to check his gut feeling with data because most of the complainers about dice are satisfied that they "feel" something is wrong. Only with data one can have a valid discussion.
[edit]: I am quite proud about my guess of the number of triplets. It was a pure guess without any calculation at all. In my opinion I came pretty close to the actual true values.
Thus we can tell Deckeon that he should find triples in 37% of his games - if they include 52 dice rolls. It seems that the specific game varies widely in number of dice rolled thus the 37% are only a rough estimate. Definitely triples are not rare in this game - even with 10-sided dice.
I like the approach of Deckeon that he is willing to check his gut feeling with data because most of the complainers about dice are satisfied that they "feel" something is wrong. Only with data one can have a valid discussion.
[edit]: I am quite proud about my guess of the number of triplets. It was a pure guess without any calculation at all. In my opinion I came pretty close to the actual true values.
Re: Dice generator - the non-conspiracy take
I am only going to track combat rolls for simplicity, and because i suspect the problem is "quick" dice rolls. While there are pauses in combat like when turn passes to other player, I suspect this issue is happening when dice are rolled in quick succession. there is no way to parse "slow" rolls for combat really to prove my point, but there should still be a slight aberration even including "slow" combat rolls. Environment rolls and events I will not track, only combat.
Re: Dice generator - the non-conspiracy take
Noticing some of the games are just showing last turn:
https://boardgamearena.com/gamereview?table=814794584
Anyone know why?
https://boardgamearena.com/gamereview?table=814794584
Anyone know why?
Re: Dice generator - the non-conspiracy take
Was there at least one battle before the last turn?