Số ngẫu nhiên
I. Khái niệm Số ngẫu nhiên, hay còn gọi là "loạn số" là một khái niệm phổ biến trong thống kê và khoa học máy tính. Khái niệm này...
I. Khái niệm
Số ngẫu nhiên, hay còn gọi là "loạn số" là một khái niệm phổ biến trong thống kê và khoa học máy tính. Khái niệm này được dùng để chỉ con số/dãy số biến thiên bất quy tắc, hay có vẻ là bất quy tắc, hay theo những quy tắc mà ở mức độ trí tuệ của loài người đương đại chưa nhận biết được.
Số ngẫu nhiên được ứng dụng nhiều trong việc mã hóa, ứng dụng trong cờ bạc và rất thường thấy trong xây dựng game. Các ứng dụng lâu đời nhất của số ngẫu nhiên thường thấy là đổ xí ngầu (xúc xắc) hay búng đồng xu để phân định thắng thua, quyết định ai được đi trước trong các trò cờ bạc.
Trong từ điển ngôn ngữ của nhân loại có hai từ: "may mắn" và "xui xẻo". Đây là sản phẩm của số ngẫu nhiên.
Lấy ví dụ về số ngẫu nhiên trong các game RPG, khi nhân vật Level up thì sẽ tăng ngẫu nhiên các chỉ số: HP, sức mạnh, phòng thủ.... Hay hành động, phản ứng của đối phương trong game, chẳng hạn như chọn một hành động trong số những hành động có thể dùng trong tình huống lúc đó: tấn công vật lý, tấn công ma pháp, dùng Item, dùng kỹ năng đặc biệt...
Các chỉ số của nhân vật được tăng ngẫu nhiên
Lấy ví dụ chỉ số Hit biểu diễn khả năng đánh trúng mục tiêu của nhân vật. Khi chỉ số này bằng 0% hoặc 100% thì nó không còn là số ngẫu nhiên, nhưng khi nó nằm trong phạm vi ngoài hai con số này thì chỉ số này trở thành số ngẫu nhiên. Nhân vật có 90% cơ hội đánh trúng mục tiêu về bản chất cũng giống như nhân vật có 10% cơ hội đánh trúng mục tiêu, về bản chất chỉ là "trật" hoặc "trúng" và chỉ khác nhau ở cơ hội nhiều hay ít. Vậy khi Hit nằm trong khoảng 1% ~ 99% thì khi nào thì đánh trúng, khi nào thì đánh trật? Máy tính dựa vào cơ sở nào để phán đoán đòn đánh của nhân vật là trúng hay trật?
II. Hai loại loạn số
Người ta thường chia số ngẫu nhiên thành hai loại: số ngẫu nhiên thực (chân loạn số) và số ngẫu nhiên giả (nghĩ tự loạn số).
Số ngẫu nhiên thực là con số mà quy tắc biến đổi mỗi lần lấy của nó nằm ngoài khả năng dự báo của con người, chẳng hạn như các yếu tố trong tự nhiên: độ nhiễu khí quyển, nhiệt tạp âm, tia vũ trụ,...
Còn số ngẫu nhiên giả là số được sinh thành từ các thuật toán chính xác.
Nếu như tính chất của số ngẫu nhiên thực là bất quy tắc và không thể tái hiện (khi đổ xí ngầu, ta không thể dựa vào mặt xí ngầu hiện tại để dự đoán lần đổ tiếp theo sẽ ra mặt nào) thì tính chất của số ngẫu nhiên giả là hoàn toàn có thể dự đoán được nếu như biết trước thuật toán sinh ra nó và nắm được các điều kiện sinh thành của nó, tuy rằng việc này cũng rất khó.
Trong điều kiện bình thường thì không thể phán đoán một con số/dãy số ngẫu nhiên là thực hay giả và cũng rất khó để nói tính chất về mặt thống kê của số ngẫu nhiên thực khác với số ngẫu nhiên giả. Do vậy, ở mức độ người dùng thông thường thì khó để phân biệt hai loại loạn số này.
III. Cách sinh thành
Ta có hai cách sinh thành nên số ngẫu nhiên, ứng với hai loại thực và giả.
Đối với số ngẫu nhiên thực, cách sinh thành cổ xưa nhất và vẫn được dùng đến ngày nay là đổ xí ngầu hay búng đồng xu, vòng quay roulette. Nhiều loại máy tính ngày nay cũng trang bị phần cứng có khả năng sinh thành số ngẫu nhiên như dùng cảm biến (sensor) đo lường các hiện tượng vật lý ngẫu nhiên như nhiệt tạp âm, vật chất phóng xạ do diod trong máy sinh ra và chuyển những tín hiệu đó thành con số.
Đối với số ngẫu nhiên giả, người ta dùng các thuật toán chính xác, các phương pháp luận lý như phép dời bit để tạo ra. Các phương pháp tính toán này cũng mang lại hiệu quả cao như phương pháp đo lường các hiện tượng vật lý kể trên, tuy nhiên nó có nhược điểm là sau một thời gian thì sẽ thấy con số được lặp lại (chu kỳ lặp lại).
IV. Ví dụ về cách sinh thành số ngẫu nhiên giả
Mọi con số ngẫu nhiên giả đều được sinh thành từ một số khởi đầu gọi là "chủng tử" (seed, hạt giống). Một ví dụ thường thấy trong game RPG: nhân vật A khi level up có 40% cơ hội tăng HP, 30% cơ hội tăng sức mạnh và ta có thuật toán đơn giản như sau:
1. Lập sẵn một bảng (table) gồm những con số từ 0 tới 100.
2. Lấy chủng tử là con số biểu diễn vị trí ngang/dọc của đường quét (scanline) trên màn hình. Đường quét của các thiết bị điện tử có chu kỳ lặp lại cố định nhưng tại một thời điểm, mắt người và não người gần như không thể phán đoán được nó đang ở vị trí nào.
3. Giới hạn chủng tử trong phạm vi 0 ~ 200. Màn hình các thiết bị ngày nay có độ phân giải cao, lượng điểm ảnh lớn nên vị trí ngang/dọc của đường quét sẽ vượt khỏi giới hạn 200.
4. Giá trị của chủng tử là chỉ số trong bảng trên. Chẳng hạn, đường quét ở vị trí điểm ảnh thứ 63 thì số ngẫu nhiên được tạo thành lúc này là 63.
5. Chia đôi giá trị của chủng tử, chỉ lấy phần nguyên, ta được 63/2=31.
6. Cộng giá trị của chủng tử với 1 nếu giá trị này khác zero. Kết quả ta được 31+1 = 32.
7. So sánh số ngẫu nhiên vừa tạo thành với cơ hội tăng các chỉ số của nhân vật:
- Nếu số ngẫu nhiên lớn hơn cơ hội thì sẽ không tăng.
- Nếu số ngẫu nhiên nhỏ hơn hoặc bằng cơ hội thì nhân vật được tăng.
Trong ví dụ trên, nhân vật có 40% cơ hội tăng HP, 30% cơ hội tăng sức mạnh thì khi so sánh với số ngẫu nhiên 32 vừa được tạo thành, ta thấy chỉ số HP được tăng còn chỉ số sức mạnh thì không.
Đó cũng là cách mà máy tính đánh giá một cú đánh trong phạm vi 1% ~ 99% là trúng hay trật mục tiêu. Và rõ ràng phần trăm cơ hội càng cao thì càng dễ đánh trúng.
Trên đây chỉ là một ví dụ đơn giản về cách lấy số ngẫu nhiên. Có những phương pháp phức tạp hơn để tăng độ ngẫu nhiên, chẳng hạn như đem chủng tử thực hiện các phép toán luận lý, rồi cộng trừ nhân chia với giá trị của một vùng bộ nhớ biến thiên. Có những game dùng chủng tử là hằng số cho trước, lại có game dùng chủng tử là thời gian hiện tại và có game dùng chính giá trị nút bấm mà người chơi nhấn để làm điểm bắt đầu tính toán số ngẫu nhiên.
Hình ảnh trên lấy từ game Darkwing Duck, đối phương sẽ rơi một món đồ ngẫu nhiên khi ta bắn trúng hắn. Game này sử dụng chủng tử là giá trị thời gian người chơi nhấn nút để tính toán số ngẫu nhiên, từ đó phán đoán cho kẻ địch rơi món đồ gì. Trong hình này, thời gian nhấn nút thay đổi thì món đồ rơi ra cũng thay đổi.
V. Quan điểm Phật giáo và góc nhìn nhất nguyên
Máy tính là một cỗ máy làm theo các mệnh lệnh một cách tuần tự, phân nhánh khi gặp các điều kiện nên nói một cách nghiêm mật thì khái niệm "ngẫu nhiên" không hề tồn tại đối với máy tính. Tất cả những gì nó làm là tuân theo các chỉ thị một cách trung thực. Nếu điều kiện như thế này thì sẽ cho kết quả thế kia. Tất cả mọi kết quả do máy tính xử lý đều có thể hiểu được một cách rõ ràng, rành mạch theo tinh thần nhân quả: vì có nguyên nhân thế này nên mới có kết quả thế kia.
Xét về điểm này thì nguyên tắc hoạt động của máy tính giống với quan điểm của Phật giáo. Theo góc nhìn của tôn giáo này thì cuộc đời là một siêu máy tính, nó cho ra mọi kết quả dựa vào luật nhân quả. Nhân là ăn mặn thì quả là khát nước, đây là một thuật toán hết sức đơn giản mà cỗ máy cuộc đời sử dụng. Nhưng lắm khi cỗ máy này lại sử dụng những thuật toán tinh vi hơn, cho ra kết quả ăn mặn nhưng không khát nước, hoặc không ăn mặn vẫn khát nước. Điều này khiến con người hoài nghi về tính đúng sai của nhân quả khi người ta không hiểu rõ thuật toán mà cỗ máy cuộc đời đang áp dụng.
Bên trên có đề cập đến hai loại số ngẫu nhiên. Với con số được sinh thành từ những dữ kiện mà loài người chưa nắm được quy tắc thì được xem là số ngẫu nhiên thực. Nhưng đến khi con người hiểu biết đầy đủ về các dữ kiện này thì số ngẫu nhiên thực sẽ trở thành số ngẫu nhiên giả. Chẳng hạn, người xưa xem việc mưa nắng là chuyện trời đất không thể lường trước (số ngẫu nhiên thực) nhưng ngày nay con người đã hiểu biết gần như đầy đủ về cơ chế sinh ra mưa nắng, có thể dự đoán được trong tương lai gần nên chuyện mưa nắng đã trở thành số ngẫu nhiên giả (do thuật toán của thiên nhiên sinh thành).
Xét trong một phạm vi không thời gian nhỏ hẹp thì cái ngẫu nhiên là có tồn tại, nhưng xét rộng khắp thì ngẫu nhiên không hề tồn tại. Với khả năng hiện nay, con người vẫn chưa đo lường được sự biến thiên của tia vũ trụ nhưng khi có trí tuệ đầy đủ thì dữ kiện này sẽ không còn được coi là ngẫu nhiên nữa. Khi tung đồng xu thì mặt rơi xuống đất là sấp hay ngửa? Kết quả này phụ thuộc vào quá nhiều yếu tố chung quanh tác động tới như lực tung, hướng tung, hướng gió,... và vô số yếu tố khác mà con người chưa nắm được hết. Trong tương lai, khi hiểu thấu được hết các yếu tố tác động này thì ta sẽ dự báo được mặt nào của đồng xu sẽ chạm đất, và cái ngẫu nhiên tuyệt đối sẽ không còn là ngẫu nhiên nữa.
Như vậy, có thể nói "ngẫu nhiên" là một từ đại diện cho sự vô tri của con người. Còn khi có trí tuệ soi chiếu thì người ta sẽ không còn nói đến ngẫu nhiên vì lúc đó đã thấu hiểu mọi hiện tượng được sinh thành ra sao, do đâu mà có. Không có may mắn, không có xui xẻo, tất cả đều do nguyên nhân mà tạo thành kết quả. Điều này có nghĩa là cuộc đời là một chuỗi kết quả của những nguyên nhân trong quá khứ, hay nói cách khác, mọi thể sống trong đời đều được lập trình theo những hướng đã định sẵn. Đó là thứ mà người ta gọi là "định mệnh".
Nhưng ai đã lập trình nên mọi thứ này? Phật giáo phủ nhận vai trò của một đấng tối cao trong việc lập trình này, tức phủ nhận vai trò của programmer. Và nếu là như vậy thì mọi sự nỗ lực hay sa đọa đều không có ý nghĩa, vì kết quả đã được định sẵn từ trước. Không phải như vậy, nếu đã chấp nhận nhân quả, chấp nhận hiện tại là kết quả của quá khứ thì sẽ hiểu được tương lai là kết quả của hiện tại, mọi sự nỗ lực hay sa đọa đều mang lại những kết quả khác nhau. Nói cách khác, mọi thể sống trên đời là kết quả của những nguyên nhân từ trước, và chính nó cũng là nguyên nhân cho chính nó ở ngay khoảnh khắc sau đó.
Thể sống là một đoạn code đặc biệt của cỗ siêu máy tính cuộc đời. Trong đó, đoạn code này được sinh thành từ những yếu tố điều kiện khác và chính nó cũng tạo ra những đoạn code có thể xem là "chính nó sau này". Đây cũng là một mục tiêu của con người trong việc xây dựng trí tuệ nhân tạo.
Và dù thuật toán có phức tạp đến đâu thì máy tính và cuộc đời cũng đều hoạt động trên một nguyên tắc đơn giản: nếu ABC thì XYZ.
Khoa học - Công nghệ
/khoa-hoc-cong-nghe
Bài viết nổi bật khác
- Hot nhất
- Mới nhất