Aagh
Aaagh! Aagh !! Aaaaagh !!! Aaaaaaghgghh !!!! Aaaaaaghghghghgghhhhh !!!!!
De acuerdo, eso es suficiente. Cinco signos de exclamación !!!!! (Signo seguro de una mente loca [1])
- ¿Qué piensan los ingenieros de software sobre el mundo conectado en Watch Dogs?
- ¿Cuál es el mejor ingreso adicional para el ingeniero de software?
- Como ingeniero de software, ¿cuál es el mejor consejo profesional que le han dado?
- Cómo asegurarme de que el software probado de mi unidad funciona, si me burlo de la interacción entre una unidad y otra
- ¿Qué versión de Java utilizan la mayoría de las empresas tecnológicas?
La pregunta del título pide un objeto aleatorio , no (repito, no) un objeto pseudoaleatorio . Hay una gran diferencia: qué vergüenza si propusiste una solución que involucrara invocar algún tipo de función “rand ()” en el idioma que elijas.
Python: random () es pseudoaleatorio. C ++ rand () es pseudoaleatorio. Javascript Math.random () es pseudoaleatorio. Java Random y Math.random () son pseudoaleatorios. Todos estos son deterministas . No al azar XKCD hizo esto bien [2]:
Si quiere aleatorio, use / dev / random en una máquina Linux. Sin embargo, tenga en cuenta que esto se bloqueará cuando no haya suficiente entropía disponible. (Darwin [3] te ayuda en Windows).
De acuerdo, entiendo que el interrogador “realmente significaba un número pseudoaleatorio”, pero, muchachos, eso es realmente vergonzoso. La entropía verdadera es lo suficientemente difícil de adquirir sin que alguien la confunda con un generador de números pseudoaleatorios determinista, o simplemente sea intolerablemente descuidado.
Es este tipo de mierda lo que lleva a las personas a creer que los GUID de tipo 4 que obtienes de una caja de Windows tienen suficiente entropía para evitar colisiones. (Sugerencia: mira la entropía de la fuente).
Mi 2c, Jo.
[1] Múltiples signos de exclamación
[2] xkcd: número aleatorio
[3] O Dios, si ella existe. Estoy muy feliz de que Darwin existiera.