Độ chính xác của hàm Math.random()
của JavaScript là gì?chính xác của Math.random()
Trả lời
Math.random()
tạo ra một số dấu chấm động 16 chữ số thập phân lớn hơn hoặc bằng số không và ít hơn 1.
Theo wikipedia: Double-precision floating-point format phần phần là 52 bit, và chúng ta biết rằng con số đó sẽ được giữa 0 và 1 (tôi nghĩ không bao gồm 1), vì vậy số mũ là -1, khiến chúng ta có 52 bit ngẫu nhiên.
52 bit ngẫu nhiên cung cấp cho bạn 52 bit chính xác, mà trong cơ sở 10 là khoảng
52*log10(2) ~= 15.653559774527022151114422525674 digits.
Nó của trình duyệt/động cơ Javascript phụ thuộc.
Độ chính xác tối đa có thể là 52 bit, bởi vì Math.random
trả lại dấu phẩy động kép chính xác giữa 0 (bao gồm) và 1 (độc quyền). Điều này tối đa tương ứng với khoảng 16 thập phân, xem câu trả lời của Sly1024.
Trong thực tế, nhiều trình duyệt cung cấp độ chính xác nhỏ hơn. Đây có vẻ là trạng thái hiện tại:
- Firefox: đầy đủ 52 bit ngẫu nhiên.
- V8/Chrome: 32 bit chính xác (một số năm trước đây nó đã từng là thấp như 30 bit, xem https://codereview.chromium.org/1599019)
- Safari: 32 bit
- IE:
Chạy đoạn mã sau nhiều lần và bạn sẽ thấy rằng 21 bit cuối luôn bằng 0 trong Chrome và Safari.
console.log((Math.random() * Math.pow(2,53)).toString(2));
IE11: 52 bit ngẫu nhiên, mặc dù mã ở trên cho kết quả như '111000000101010100010110011011110111000111010101110.1' đôi khi. –
- 1. Javascript: Math.random
- 2. Hạt giống ngẫu nhiên Math.random trong Java
- 3. Stubbing Date.now() và Math.random()
- 4. Math.random() giải thích
- 5. Giải thích Math.floor (Math.random())
- 6. Độ chính xác của CLLocation chính xác đến mức nào?
- 7. Math.random của JavaScript ngẫu nhiên như thế nào?
- 8. Lua math.random không hoạt động
- 9. Math.random() so với Random.nextInt (int)
- 10. Độ chính xác của Cython
- 11. Math.floor (Math.random()) +1 thực sự làm gì?
- 12. sử dụng chính xác của GetClipRgn?
- 13. Độ chính xác của MediaPlayer.seekTo (int msecs)
- 14. Cách đặt độ chính xác của phao
- 15. chính xác Arbitrary của rễ vuông
- 16. indexPathsForVisibleRows của UITableView không chính xác?
- 17. Điều gì làm tăng độ chính xác và độ chính xác theo chiều dọc của CLLocation?
- 18. Độ chính xác của phép nhân đôi chính xác trong java?
- 19. Chức năng của session_module_name chính xác của php là gì?
- 20. độ chính xác chiều sâu opencv độ chính xác
- 21. html5 geolocation chính xác
- 22. Chính xác hơn distance_of_time_in_words
- 23. Quy mô Chrome flash không chính xác
- 24. Thời gian chính xác của Linux - Điều gì xác định độ phân giải của clock_gettime()?
- 25. Chính xác blockquote HTML
- 26. Chính xác là gì?
- 27. chính xác trong Erlang
- 28. Cách xác định chính xác PRINT_NOTIFY_INFO_DATA?
- 29. Tại sao tôi nên kết hợp Math.floor với Math.random?
- 30. Tính chính xác của hẹn giờ trong java
'Math.random()' là hàm chính xác. – tcooc
Đúng vậy, đó là ý tôi. Cảm ơn! – jpc826