moon_aka_sun (
moon_aka_sun) wrote2011-04-20 03:19 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Entry tags:
- bug,
- feature,
- javascript,
- random,
- rant
Beware the Dragons!
Новый сюрприз от Javascript. Функция Math.random() возвращает случайное число от 0.0 до практически 1.0. Но оказалось, наивно было предполагать, что в мантиссе все цифры случайные, и что можно получить до 53 случайных бит, и что, например, 48-битное целое могло бы получаться как-то так: Math.floor(0x1000000000000*Math.random()). Фактически, кроме первых 32 бит, остальные могут быть нули, т.е. нули и есть в доступных реализациях. А я-то думаю, что это выбор случайных слов какой-то совсем не случайный!
0100010111100001110110111001001000000000000000000000 0101111001001011111010101100101100000000000000000000 0000010000101110100000010010001100000000000000000000 1100110000001111111001001011101000000000000000000000 0010010010000010011001000111101100000000000000000000 1000110001101110011011110110000100000000000000000000 ...