Tuesday, May 16, 2017

Call for Judgment: Fixing A Critical Issue [Appendix]

Timed out 3-2. Enacted by card.

Adminned at 18 May 2017 17:29:46 UTC

In the Appendix under “Random Generators” add the following text:

DICEN cannot be rolled in the GNDT if N is 22 or more digits long.

Seems urgent enough to be a CfJ

Comments

Cuddlebeam:

05-16-2017 15:45:20 UTC

Tried it out. As a single DICEN not apparently because the GNDT won’t let me, but it could be done via several dicerolls. For example a DICE(10^63) could be rolled as three DICE(10^21), with the first one corresponding to the first 21 digits, the second one for digits 22 to 43 and a third for 44 to 63.

Sphinx:

05-16-2017 16:09:39 UTC

I don’t really see this as an issue.

Matt:

05-16-2017 16:15:04 UTC

@Cuddlebeam, that may result in a non-uniform distribution, which would give bias to the randomness.

There ought to be some sane upper bound. Basing it on the limits of the system seems sound.  for

pokes:

05-16-2017 16:45:18 UTC

We’d need to ask Kevin about the GNDT source but I suspect a DICE(10^21) isn’t the distribution we think it is. If DICE(X) is ceil(X * U) where U is floating point uniform from [0,1], U probably doesn’t have the 10^21 levels of precision we want. against

pokes:

05-16-2017 16:45:54 UTC

*Kevan. Sorry you got autocorrected, Kevan

card:

05-16-2017 16:56:39 UTC

So would 20 digits or less have the precision we want? What digits do have a reasonable distribution?

pokes:

05-16-2017 17:00:10 UTC

Yes: That some of the larger integer DICE most recently rolled are divisible by 4096 is likely not a concidence.

pokes:

05-16-2017 17:02:35 UTC

That yes was in response to my own comment. No, 20 digits is too many still.

pokes:

05-16-2017 17:07:06 UTC

I don’t think we can know for sure without Kevan’s knowledge. 9 digits are probably safe. Anything that gets to that point has gotta be just as game breaking as something at 21 digits.

Sphinx:

05-16-2017 17:14:34 UTC

I’d naively assume that it’s a double, so the largest number where we still have single integer precision would be 2^53, or about 10^15.

Kevan:

05-16-2017 17:33:29 UTC

The source code is just an int(rand($sides)+1) in perl.

Publius Scribonius Scholasticus:

05-16-2017 19:35:03 UTC

against

We should have a more logical upper bound.

pokes:

05-16-2017 21:11:34 UTC

Perl appears to have a 48-bit RNG, although any DICE close to 2^48 will still be notably non-uniform.

Cuddlebeam:

05-16-2017 21:23:01 UTC

@Matt: ...How?

card:

05-17-2017 06:00:51 UTC

[PSS] What’s more logical than the limitations of the GNDT? In the context of being able to see each individual digit of a die result at least.

Sphinx:

05-17-2017 07:00:01 UTC

for

I think it’s fine