Kế toán cho số học underflowsĐược là một chướng ngại vật. Trong thực tế, chúng tôi làm việc với xác suất nhỏ hơn nhiềuso với những cái chúng tôi đã giải quyết trong ví dụ đồ chơi. Trong thực tế, chúng tôi cũng có nhiều hơn nữahơn hai tính năng, mà chúng tôi nhân với nhau. Điều này sẽ nhanh chóng dẫn đến cácđiểm nơi chính xác cung cấp bởi NumPy không đủ nữa:>>> nhập khẩu numpy như np>>> np.set_printoptions(precision=20) nói với # numpy để in ra nhiều hơn nữachữ số (mặc định là 8)>>> np.array([2.48E-324])mảng ([4.94065645841246544177e-324])>>> np.array([2.47E-324])mảng ([0.])Vì vậy, có thể xảy ra như thế nào là nó rằng chúng tôi sẽ bao giờ trúng một số như 2.47E-324? Để trả lờiĐiều này, chúng ta phải tưởng tượng một khả năng cho các xác suất có điều kiện của 0,0001và sau đó nhân 65 của họ với nhau (có nghĩa là chúng tôi có 65 thấp có thể xảy ratính năng giá trị) và bạn đã bị ảnh hưởng bởi underflow số học:>>> x = 0.00001>>> x ** 64 # vẫn tốt1E-320>>> x ** 65 # ouch0,0Một phao bằng Python thường được thực hiện bằng cách sử dụng tăng gấp đôi trong C. Để tìm hiểu xemtrường hợp cho nền tảng của bạn, bạn có thể kiểm tra xem nó như sau:
đang được dịch, vui lòng đợi..