4 ms·
Hi Colin, with verifiable I mean that I don't need to make a screen-recording of me going on Random.org and get the number. I want something which can be checke
by cosbgn 9y ago
Hi Colin, with verifiable I mean that I don't need to make a screen-recording of me going on Random.org and get the number. I want something which can be checked and verified by anyone, some sort of "true" unique random number, the national lottery could be one because anyone could open a newspaper/browser and check it, it would be really hard for me to fake it.
- ColinWright 9y agoSo what you need is a process which anyone in the future after time T_0 can execute. Everyone who does so will get the same result, and the result will be agreed by everyone to be "random". So, for example, after January 23rd anyone can get the exact number of shares traded in Apple on the NYSE on January 21st, take the natural log, discard the first six digits after the decimal point, and keep the next six digits as a random number from 0 to 10^6-1 inclusive. That's not necessarily evenly distributed so it doesn't necessarily meet all your criteria, but other than that, is it the sort of thing you mean?
- cosbgn 9y agoYes that's exactly what I mean. However I can't solve 2 problems on this kind of approach, first it's not within a range (e.g. 1 and 144) and secondly I'm not sure every number has the same probably to come out.
- ColinWright 9y agoThe second is what I say about being evenly distributed. The first is easy to solve. Get a result that's sufficiently fine-grained and in the range [0,1). Then scale up by X and round up. You can add randomness by pushing your number through a cryptographic hash function and treating the result as a binary number in the range [0,1).
- twobyfour 9y agoExcuse my ignorance, but what is the meaning of the differing brackets in the notation you're using: "[0,1)"?
- ColinWright 9y agoStandard mathematical notation to indicate whether the endpoint is or is not included. { x : a < x && x < b } <=> (a,b) { x : a <=x && x < b } <=> [a,b) { x : a < x && x <=b } <=> (a,b] { x : a <=x && x <=b } <=> [a,b] In the example above the questioner is asking about getting a number in the range 1 to X inclusive. That would be [1,X]. Random number generators can return numbers in the range 0 to 1, including 0, not including 1. You can write that as [0,1). If you want an integer n in [1,X] and you get reals r [0,1), you can create a function: f : [0,1) -> [1,X], f(r) = 1+floor(X*r) Always check the endpoints, and the expected frequencies.
- twobyfour 9y agoThank you, that's helpful!