Trình tạo số ngẫu nhiên từ đầu Python
Trình tạo số giả ngẫu nhiên hay còn gọi là PRNG là một khái niệm liên quan đến việc tạo ra một chuỗi số ngẫu nhiên bằng cách sử dụng các công thức toán học. Tạo một số ngẫu nhiên không dễ dàng như vẻ ngoài của nó. Khi chúng ta có một thuật toán và tập hợp các đầu vào, chúng ta sẽ nhận được đầu ra. Và nếu chúng ta lại sử dụng cùng một thuật toán với cùng một bộ đầu vào, chúng ta sẽ nhận được cùng một đầu ra chứ không phải một đầu ra khác. Chúng tôi không thể tạo ra một số thực sự ngẫu nhiên bằng bất kỳ thuật toán nào. Nhưng chúng ta có thể tạo ra các số giả ngẫu nhiên mà các số gần như không thể đoán trước rằng nó có vẻ giống như một số ngẫu nhiên Show
Có một số thuật toán có sẵn để tạo PRNG. Chúng ta sẽ xem một số thuật toán cơ bản để hiểu khái niệm và triển khai chúng bằng javascript Phương thức bình phương ở giữa trong JavaScriptĐây là một trong những thuật toán đơn giản nhất để tạo ra một số giả ngẫu nhiên. Nó có bước sau
function pseudoRandom(seed, num_of_digits){ n = (seed * seed).toString() while(n.length < num_of_digits * 2 ){ n = "0" + n } start = Math.floor(num_of_digits / 2) end = start + num_of_digits seed = parseInt(n.substring(start, end)) return seed } num_of_digits = 4 seed = 1452 for(i = 0; i<5; i++){ random_number = pseudoRandom(seed, num_of_digits) console.log(random_number) seed = random_number } đầu ra 1083 1728 9859 1998 9920
Trình tạo cộng dư tuyến tính trong JavaScriptTrình tạo đồng dư tuyến tính là một thuật toán PRNG phổ biến và nó được sử dụng trong nhiều ngôn ngữ và hệ thống lập trình. Nó đơn giản để thực hiện và nhanh hơn để thực hiện. Nó cũng là một thuật toán tốt hơn nhiều so với Phương pháp Middle Square Công thức Random number = ( a*seed + c) mod m ở đâu, Để tạo một số ngẫu nhiên trong khoảng từ 0 đến 1, chúng tôi chia số được tạo cho m. Số ngẫu nhiên được tạo sẽ được sử dụng làm giá trị hạt giống để tạo số ngẫu nhiên tiếp theo Python định nghĩa một tập hợp các hàm được sử dụng để tạo hoặc thao tác các số ngẫu nhiên thông qua mô-đun ngẫu nhiên. Các hàm trong mô-đun ngẫu nhiên dựa vào hàm tạo số giả ngẫu nhiên random(), tạo ra một số float ngẫu nhiên trong khoảng từ 0. 0 và 1. 0. Các loại chức năng cụ thể này được sử dụng trong rất nhiều trò chơi, xổ số hoặc bất kỳ ứng dụng nào yêu cầu tạo số ngẫu nhiên Ví dụ về số ngẫu nhiên trong PythonTạo danh sách số ngẫu nhiên trong Python bằng cách sử dụng ngẫu nhiên () Python31083 1728 9859 1998 992064 1083 1728 9859 1998 992065 1083 1728 9859 1998 992066 1083 1728 9859 1998 992067 5 t0 5 t1 5 t2 đầu ra. 0.30078080420602904 Các cách khác nhau để tạo số ngẫu nhiên trong PythonPhương pháp 1. Tạo danh sách số ngẫu nhiên trong lựa chọn Python()Sự lựa chọn () là một chức năng sẵn có trong ngôn ngữ lập trình Python trả về một mục ngẫu nhiên từ một danh sách, bộ dữ liệu hoặc chuỗi Python35 t3 5 t4
5 t5 1083 1728 9859 1998 992064 1083 1728 9859 1998 992065
5 t8 5 t9 1083 1728 9859 1998 992067 1083 1728 9859 1998 992021 1083 1728 9859 1998 992022 1083 1728 9859 1998 992023 1083 1728 9859 1998 992024 1083 1728 9859 1998 992023 1083 1728 9859 1998 992026 1083 1728 9859 1998 992023 1083 1728 9859 1998 992028 1083 1728 9859 1998 992023 Random number = ( a*seed + c) mod m10 1083 1728 9859 1998 992023 Random number = ( a*seed + c) mod m12 Random number = ( a*seed + c) mod m13 5 t1____215
Random number = ( a*seed + c) mod m16 Random number = ( a*seed + c) mod m17 1083 1728 9859 1998 992067 Random number = ( a*seed + c) mod m19 5 t1 5 t11 đầu ra 5 t Phương pháp 2. Tạo danh sách số ngẫu nhiên trong Python randrange (xin, kết thúc, bước)Mô-đun ngẫu nhiên cung cấp một chức năng có thể tạo ra các số ngẫu nhiên từ một phạm vi cụ thể và cũng cho phép thêm các bước vào, được gọi là randrange() Python35 t12 5 t13
5 t14 1083 1728 9859 1998 992064 1083 1728 9859 1998 992065
5 t17 5 t18 5 t1 5 t90 5 t91 5 t92 1083 1728 9859 1998 992067 5 t94 5 t1 5 t96______122 1083 1728 9859 1998 992023 1083 1728 9859 1998 992028 1083 1728 9859 1998 992023 1083 1728 9859 1998 9920641 1083 1728 9859 1998 992023 1083 1728 9859 1998 9920643 1083 1728 9859 1998 992023 1083 1728 9859 1998 992026 1083 1728 9859 1998 9920646
1083 1728 9859 1998 9920647 1083 1728 9859 1998 9920648 1083 1728 9859 1998 9920649 5 t1 5 t90 1083 1728 9859 1998 9920652 5 t92 1083 1728 9859 1998 992067 5 t94 5 t1 1083 1728 9859 1998 9920657 1083 1728 9859 1998 9920658 1083 1728 9859 1998 992023 1083 1728 9859 1998 9920660 1083 1728 9859 1998 992023 1083 1728 9859 1998 992026 1083 1728 9859 1998 9920663 đầu ra. 1083 1728 9859 1998 99202 Phương pháp 3. Tạo danh sách số ngẫu nhiên trong Python bằng seed()Hàm seed được sử dụng để lưu trạng thái của một hàm ngẫu nhiên để nó có thể tạo một số số ngẫu nhiên trên nhiều lần thực thi mã trên cùng một máy hoặc trên các máy khác nhau (đối với một giá trị seed cụ thể). Giá trị hạt giống là số giá trị trước đó được tạo bởi trình tạo. Lần đầu tiên khi không có giá trị trước đó, nó sử dụng thời gian hệ thống hiện tại Python35 t12 1083 1728 9859 1998 9920665
5 t14 1083 1728 9859 1998 992064 1083 1728 9859 1998 992065
1083 1728 9859 1998 9920669 1083 1728 9859 1998 9920670 5 t1____390 1083 1728 9859 1998 9920673 5 t92 1083 1728 9859 1998 992067 5 t94 5 t1____1678
1083 1728 9859 1998 9920679 5 t00 Random number = ( a*seed + c) mod m10 5 t02
5 t03 5 t1 5 t90 5 t06 5 t92 1083 1728 9859 1998 992067 5 t94 5 t1____1678
5 t12 5 t00 5 t14 5 t02
5 t03 5 t1 5 t90 5 t19 5 t92 1083 1728 9859 1998 992067 5 t94 5 t1____1678
5 t25 5 t00 Random number = ( a*seed + c) mod m10 5 t02
5 t03 5 t1 5 t90 5 t06 5 t92 1083 1728 9859 1998 992067 5 t94 5 t1____1678
5 t38 5 t00 5 t14 5 t02
5 t03 5 t1 5 t90 5 t19 5 t92 1083 1728 9859 1998 992067 5 t94 5 t1____1678 đầu ra. Random number = ( a*seed + c) mod m1 Phương pháp 4. Tạo danh sách số ngẫu nhiên trong Python sử dụng shuffle()Nó được sử dụng để xáo trộn một chuỗi (danh sách). Xáo trộn là thay đổi vị trí các phần tử của dãy. Ở đây, các hoạt động xáo trộn được đặt ra Python35 t51 1083 1728 9859 1998 992064 1083 1728 9859 1998 992065
5 t54 5 t55 1083 1728 9859 1998 992067 1083 1728 9859 1998 992021_______358 1083 1728 9859 1998 992023____360____123 5 t62 1083 1728 9859 1998 992023 5 t64 1083 1728 9859 1998 992023 5 t66 Random number = ( a*seed + c) mod m13
5 t1 5 t90 5 t70 5 t02 5 t1 5 t73
5 t74 5 t75 5 t1 5 t90 5 t78 5 t02 5 t1 5 t73
5 t82 5 t75 5 t1 5 t90 5 t86 5 t02 5 t1 5 t73 đầu ra 5 t1 Phương pháp 5. Tạo danh sách số ngẫu nhiên bằng Python sử dụng thống nhất ()Hàm này được sử dụng để tạo một số ngẫu nhiên dấu phẩy động giữa các số được đề cập trong các đối số của nó. Phải mất hai đối số, giới hạn dưới (được bao gồm trong thế hệ) và giới hạn trên (không được bao gồm trong thế hệ) Python35 t12 5 t91
5 t14 1083 1728 9859 1998 992064 1083 1728 9859 1998 992065
5 t95 5 t96 1083 1728 9859 1998 992067 1083 1728 9859 1998 992021 1083 1728 9859 1998 992022 1083 1728 9859 1998 992023 1083 1728 9859 1998 992028 1083 1728 9859 1998 992023 Random number = ( a*seed + c) mod m10 1083 1728 9859 1998 992023 1083 1728 9859 1998 9920643 1083 1728 9859 1998 992023 1083 1728 9859 1998 992024 Random number = ( a*seed + c) mod m13 Làm cách nào để tạo số ngẫu nhiên trong Python mà không cần chức năng thư viện?Làm cách nào để tạo số ngẫu nhiên trong python mà không cần sử dụng thư viện? . def bsd_rand(hạt giống) chắc chắn rand() rand. hạt giống = (1103515245*rand. hạt giống + 12345) & 0x7fffffff trả lại rand. hạt giống rand. hột = hột trả lại rand Có thể tạo ngẫu nhiên bằng Python không?Python xác định một tập hợp các hàm được sử dụng để tạo hoặc thao tác các số ngẫu nhiên thông qua mô-đun ngẫu nhiên . Các hàm trong mô-đun ngẫu nhiên dựa vào hàm tạo số giả ngẫu nhiên random(), tạo ra một số float ngẫu nhiên trong khoảng từ 0. 0 và 1. 0. |