WOyG~ZtOT)Z
Lưu ý: chương trình này có thể sẽ gặp sự cố với lỗi bộ nhớ trên bất kỳ máy tính thực nào. Để kiểm tra nó, hãy thử thay thế Gbằng một chuỗi ngắn hơn, chẳng hạn như trong mã này, tạo ra các số trung bình khoảng 28000:
pyth -c 'WOy"abcdefghijklm"~ZtOUT)Z'
Mã này lặp, thêm một số ngẫu nhiên từ -1 đến 8 đến Z, với xác suất 2 ^ -26 thoát khỏi vòng lặp trên mỗi lần lặp lại. Xác suất 2 ^ -26 đạt được bằng cách chọn một phần tử ngẫu nhiên ( O) của tập hợp tất cả các tập hợp con ( y) của bảng chữ cái (G ).
Chi tiết kỹ thuật & biện minh:
Xác suất 2 ^ -26 có nguồn gốc từ hai sự kiện:, ykhi được gọi trên các chuỗi, là hàm thiết lập sức mạnh, một cấu trúc danh sách tất cả các tập hợp con của đầu vào. Vì đầu vào, Gdài 26 ký tự, bộ sức mạnh này, yGcó 2 ^ 26 mục. OyGchọn một yếu tố ngẫu nhiên từ 2 ^ 26 mục đó. Chính xác một trong những mục đó, chuỗi trống, sẽ đánh giá là sai khi được chuyển đếnW , vòng lặp while. Do đó, có xác suất 2 ^ -26 thoát khỏi vòng lặp mỗi lần.
Trong bất kỳ số chu kỳ vòng lặp K cố định nào, xác suất nhận được số K * 3.5 + m và nhận K * 3.5 - m là bằng nhau, bởi vì mỗi chuỗi bổ sung đạt được tổng số có thể được đảo ngược, -1 -> 8, 0 -> 7, v.v., để đạt được cái khác. Ngoài ra, các số gần với K * 3.5 rõ ràng có nhiều khả năng hơn các số ở xa hơn. Do đó, nếu K> 2000000 / 3.5 = 571428.5 thì xác suất nhận được số trên 1000000 lớn hơn 75%, bởi vì một số kết quả trên số đó có thể được đưa vào tương ứng một-một với tất cả các kết quả bên dưới số và phần trên dưới một nửa, có thể được đưa vào tương ứng một-một với những người dưới 1000000. Xác suất nhận được ít nhất 571429 vòng là (1-2 ^ -26) ^ 571429, không ít hơn (1-2 ^ -26 * 571429), số lần dự kiến rời khỏi vòng lặp trong 571429 lần thử đầu tiên, là 99,1%. Do đó, trên 99,1% thử nghiệm trở lên, có 75% hoặc nhiều hơn cơ hội nhận được ít nhất 1000000, do đó, có nhiều hơn 50% cơ hội nhận được hơn 1000000.
Mã này dựa trên hành vi Onơi một lỗi vô tình được giới thiệu 3 ngày trước và đã được sửa chữa ngày hôm nay. Nó sẽ hoạt động trên mọi phiên bản của Pyth 3 từ trước ngày 22 tháng 12 hoặc sau ngày hôm nay. Các mã sau đây là tương đương và luôn luôn hoạt động:
WOyG~ZtOUT)Z