Chúng ta có thể tạo các số ngẫu nhiên bằng cách sử dụng các số vô tỷ như π và e không?


21

Số vô tỉ như π , e2 có một chuỗi duy nhất và không lặp lại sau dấu thập phân. Nếu chúng ta trích xuấtchữ số thứntừ các số đó (trong đónlà số lần phương thức được gọi) và tạo một số có các chữ số như vậy, chúng ta có nên tạo một số tạo ngẫu nhiên hoàn hảo không? Ví dụ, nếu chúng ta đang sử dụng2 ,eπ, số thứ nhất là 123, số thứ hai là 471, số tiếp theo là 184, v.v.


30
Bạn có một định nghĩa kỳ lạ về "ngẫu nhiên" trong đầu. "Ngẫu nhiên" có nghĩa là "không thể đoán trước". Làm thế nào là trình tự của bạn không thể đoán trước? Bạn có định nghĩa gì về "ngẫu nhiên" trong đầu? Có lẽ những gì bạn đang gọi là "ngẫu nhiên" có một tên khác.
Eric Lippert

7
Lưu ý thuật toán spigot có thể được sử dụng để tạo bất kỳ chữ số hex nào trong số pi, mà không phải tạo các chữ số trước.
RCgldr

10
@EricLippert Không phải tất cả các trình tạo số giả ngẫu nhiên đều có thể dự đoán được?
Federico Poloni

7
Thuật ngữ này đã xuất hiện một vài lần: đây là "số ngẫu nhiên psuedo" không phải là "số ngẫu nhiên". Đó là một số được tạo theo thuật toán (vì vậy không phải là ngẫu nhiên), nhưng có nhiều đặc tính mong muốn mà các số ngẫu nhiên có. Một thuật toán khác là thuật toán "danh bạ NYC", trong đó bạn đi xuống danh sách các số điện thoại, theo thứ tự bảng chữ cái và lấy chữ số cuối cùng từ mỗi số đó. Không phải ngẫu nhiên, nhưng giả danh với một số hành vi thống kê khá tốt đẹp!
Cort Ammon - Tái lập lại

5
"Giả" có nghĩa là "tương tự nhưng không". Vì vậy, số ngẫu nhiên giả tương tự, nhưng không phải là số ngẫu nhiên. Vì vậy, tôi không theo dõi suy nghĩ của bạn ở đây. Bây giờ, PRNG sức mạnh tiền điện tử có một đặc tính mong muốn là nếu kẻ tấn công không biết trạng thái bên trong, không có kiểm tra thống kê nào chúng ta có thể phân biệt PRNG tiền điện tử với RNG thực sự và điều đó bao gồm việc không dự đoán được. Nhưng các chữ số của pi không có thuộc tính đó; chúng rất dễ đoán
Eric Lippert

Câu trả lời:


17

Nhược điểm rõ ràng nhất là sự phức tạp không cần thiết của các thuật toán PRNG dựa trên các số vô tỷ. Chúng đòi hỏi nhiều tính toán trên mỗi chữ số được tạo hơn so với LCG; và sự phức tạp này thường phát triển khi bạn đi xa hơn trong chuỗi. Việc tính toán 256 bit π ở bit hai phần tư mất 23 ngày trên 1000 máy tính (trở lại năm 2010) - một độ phức tạp khá cấm đối với RNG.


47

Đối với bất kỳ định nghĩa hợp lý nào về sự hoàn hảo, cơ chế bạn mô tả không phải là một trình tạo số ngẫu nhiên hoàn hảo.

  • Không lặp lại là không đủ. Số thập phân 0.101001000100001 là không lặp lại nhưng đó là một máy phát điện khủng khiếp của các chữ số ngẫu nhiên, vì câu trả lời là "luôn luôn" không, thỉnh thoảng một, và không bao giờ bất cứ điều gì khác.

  • Chúng tôi không thực sự biết nếu mỗi chữ số xảy ra như nhau thường trong việc mở rộng thập phân của π hoặc  e (mặc dù chúng tôi nghi ngờ họ làm).

  • Trong nhiều tình huống, chúng tôi yêu cầu các số ngẫu nhiên là không thể đoán trước được (thực sự, nếu bạn hỏi một người ngẫu nhiên "ngẫu nhiên" nghĩa là gì, có lẽ họ sẽ nói điều gì đó về tính không thể đoán trước). Các chữ số của hằng số nổi tiếng là hoàn toàn có thể dự đoán.

  • Chúng ta thường muốn tạo ra các số ngẫu nhiên một cách hợp lý nhanh chóng, nhưng việc tạo ra các chữ số liên tiếp của các hằng số toán học có xu hướng khá tốn kém.

  • πe


11
Đối với điểm thứ ba, phải có một số loại đầu vào 'bí mật' cho quy trình tạo của bạn để không thể đoán trước được (chính quá trình tạo nên có tính quyết định nếu chúng ta không muốn dựa vào một trình tạo số ngẫu nhiên khác.). Đầu vào thêm này thường được gọi là một hạt giống .
Thằn lằn rời rạc

6
s2logss2πs

2
@Barmar: Tại thời điểm đó, bạn phải hỏi liệu kỹ thuật này có thực sự hiệu quả hơn (và tiết kiệm không gian hơn) so với PRNG "tiêu chuẩn" không.
Kevin

2
Các chữ số của pi hoặc e hoàn toàn không thể đoán trước, đặc biệt là vì trình xem / người nhận / bộ ngắt mã, v.v. không biết bạn đã đi được bao xa trong chuỗi bạn đã đi. Nếu bạn bắt đầu ở chữ số số 237423 của chuỗi, sẽ mất rất nhiều thời gian để tìm ra, như là ngẫu nhiên.
Kỹ sư đảo ngược

10
smy birthday

29

Nó là mật mã vô dụng vì một kẻ thù có thể dự đoán từng chữ số. Nó cũng rất tốn thời gian.


11
OP không bao giờ đề cập đến mật mã ...
AnoE

13
@AnoE Vậy sao? Rằng quá trình này sẽ vô dụng về mặt mật mã vẫn có liên quan vì tiền điện tử là một người sử dụng ngẫu nhiên. Nếu bạn mang các thiết bị lên /dev/random/dev/urandomai đó sẽ luôn mang mật mã.
Greg Schmit - Tái lập lại

6
Bạn sẽ ngạc nhiên về cách bảo mật mật mã vô dụng trong thế hệ PRNG thời gian thực. số vô tỷ thường được sử dụng trong GPU PRNG. Có rất nhiều ứng dụng mà cách "bảo mật" PRNG của bạn đơn giản là không liên quan. Vấn đề quan trọng trong việc tạo ra tiếng ồn kết hợp là chất lượng phân phối và tần suất lặp lại thời gian của bạn và các hiệu ứng tương quan do các hạt liền kề (cần phải có máy trộn tuyết lở để khắc phục). Thành thật mà nói câu trả lời của bạn là sai, không thuộc về nơi này và có lẽ nên bị xóa.
whn

6
Đây là một câu trả lời cho câu hỏi. Lưu ý OP của câu hỏi được liên kết sử dụng các số ngẫu nhiên để gieo hạt phân tích monte carlo. Một bản cập nhật để giải quyết câu hỏi yêu cầu nên được xem xét. mathoverflow.net/questions/26942/ Hy
CramerTV

8
Chắc chắn có nhiều ứng dụng mà PRNG không cần phải bảo mật bằng mật mã. Nhưng OP không hỏi liệu nó có hữu ích cho một số mục đích không, họ hỏi liệu phương pháp này có phải là "RNG hoàn hảo" không. Mặc dù họ không làm rõ ý của họ là "hoàn hảo", nhưng thực tế là nó không phù hợp với một trong những cách sử dụng RNG chính có vẻ rất phù hợp để trả lời câu hỏi đó.
Geoffrey Brent

7

( được cập nhật sau khi nhiều người chỉ ra rằng trình tạo số ngẫu nhiên không giống với trình tự bình thường)

π

π

Để biết dữ liệu phân phối chữ số, hãy xem, ví dụ: http://www.eveandersson.com/pi/precalculated-frequencies hoặc https://thestarman.pc Managedry.com/math/pi/RandPI.html (1000 chữ số đầu tiên):

nhập mô tả hình ảnh ở đây

Tại mathoverflow, cũng có những câu trả lời hay tại:


3
Nếu bạn tin rằng câu hỏi là một bản sao, thì tại sao bạn lại trả lời nó? Bạn chỉ nên gắn cờ nó, không củng cố hành vi đăng không mong muốn.
dkaeae

8
@dkaeae Không có hỗ trợ cho các bản sao câu hỏi trên các trang web khác. Hơn nữa, cùng một câu hỏi trên các trang web khác nhau có thể nhận được câu trả lời khác nhau. Trong trường hợp này, một trang web như Toán học có thể không xem xét nhiều đến các vấn đề bảo mật. Xem thêm câu trả lời này . Xin lưu ý rằng chúng tôi không khuyến khích đặt cùng một câu hỏi trên nhiều trang web cùng một lúc, vì điều này có xu hướng dẫn đến những nỗ lực lãng phí. Nhưng cùng một câu hỏi của những người khác nhau tại các thời điểm khác nhau trên các trang web khác nhau thường là ok.
Thằn lằn rời rạc

6
Thật không may, chỉ vì một số là bình thường không có nghĩa là việc xuất các chữ số của nó mang lại cho bạn một RNG tốt. Đầu ra của một RNG như vậy vẫn hoàn toàn có thể dự đoán được. Cho dù đó là chấp nhận được có thể phụ thuộc vào ứng dụng. Vì vậy, tôi không nghĩ nó khá đơn giản như nói "pi là bình thường, trường hợp đóng cửa".
DW

2
Đó chỉ là quan sát emperical cho vài chữ số đầu tiên? Điều đó có nghĩa là gì?
soái ca

1
@DW Tôi đã đề cập rằng tôi có ý định sử dụng kết hợp các số như π và e. Và xin vui lòng cho biết đầu ra sẽ được dự đoán như thế nào nếu chúng ta không biết trình tự tạo ra đã đi được bao xa?
Abhradeep Sarkar

1

Nói chung, phương pháp này không hoạt động: "tính ngẫu nhiên" không có nghĩa là bạn nhận được rất nhiều chữ số khác nhau, nhưng cũng có những khía cạnh khác. Ví dụ, một bài kiểm tra cổ điển là để xem liệu tất cả các kết hợp hai chữ số, hoặc ba chữ số, vv xảy ra với cùng tần số. Đây sẽ là một thử nghiệm rất đơn giản, có thể loại trừ các kết quả không ngẫu nhiên rõ ràng, nhưng vẫn còn quá đơn giản để kiểm tra hành vi thực sự ngẫu nhiên.

Xem trang Wikipedia về Kiểm tra ngẫu nhiên dưới dạng tập hợp các liên kết đến các nguồn chính liên quan đến việc này. Họ đề cập đến một số lượng lớn các khái niệm nghe có vẻ khá phức tạp; nó không quá quan trọng để đi sâu vào chi tiết về điều này - nhưng rõ ràng là không thể trực giác tuyên bố một số cụ thể là một nguồn tốt cho các chữ số như vậy.

Trên một lưu ý tích cực: Đối với một số vô tỷ cụ thể, tất nhiên bạn có thể tự do thử nó; tức là tính số cho một mức độ lớn của các chữ số và chạy nó qua tất cả các bài kiểm tra đã biết (có các công cụ cho điều đó, xem liên kết ở trên). Nếu biện pháp này đủ tốt cho trường hợp sử dụng của bạn và nếu bạn biết rằng điều này rõ ràng là vô dụng đối với các ứng dụng mã hóa và luôn nhận được cùng một số nếu bạn nên bắt đầu lại và chất lượng có thể giảm nếu bạn vượt qua được nbạn đã chọn để kiểm tra tính ngẫu nhiên, bạn có thể sử dụng những con số đó. Nhưng sẽ tốt hơn nhiều nếu sử dụng một trình tạo số ngẫu nhiên chuyên dụng (giả); và không có gì đánh bại một nguồn ngẫu nhiên vật lý tốt.


4
πe

3
Câu trả lời của Ayrat liên kết đến các trang web khác, nơi các nhà toán học đã thực hiện các bài kiểm tra này. Họ tin, nhưng chưa chứng minh được rằng, π đáp ứng các bài kiểm tra thống kê.
Barmar

Vâng, đó là những gì tôi muốn nói với đoạn cuối của tôi - chỉ cần thử theo kinh nghiệm thì nó đáng giá; nhưng nghiêm ngặt nó đã không được chứng minh (hoặc không thể đơn giản được coi là đúng) đối với các bất hợp lý "có vẻ phức tạp" tùy ý. @DavidR Richby, @ Barmar
AnoE

1

Nó cung cấp một số ngẫu nhiên tốt cho đến khi bạn nhận ra nó được tạo ra như thế nào, như với nhiều số ngẫu nhiên giả. Các số vô tỷ (không đại số và không siêu việt) mà bạn đã chọn là phổ biến và do đó dễ đoán hơn những người khác. Tôi có thể thấy không có vấn đề gì với phương pháp này với điều kiện bạn chọn máy phát điện ít thấy hơn.


4
Không có vấn đề gì ngoại trừ sự kém hiệu quả, thực tế là bạn đang dựa vào bất kỳ đối thủ nào không biết thuật toán của bạn là gì, thực tế là một lựa chọn tồi của máy phát điện có thể dẫn đến trình tự rất kém, ...
David Richerby

4
2πe

Một số siêu việt là một số thực không phải là đại số. Một số thực không thể là cả đại số và không siêu việt.
Brady Gilg
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.