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

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

  • Lấy [các] giá trị hạt giống, có độ dài/kích thước cố định [n], ví dụ, n = 4 và s = ​​1242
  • Bình phương giá trị của s, giá trị kết quả sẽ có độ dài tối đa gấp 2 lần n, nếu không thêm 0 vào bên trái của giá trị kết quả và hãy gọi nó là S. Ví dụ sqr[s] = 1542564, S = 01542564
  • Lấy 4 chữ số ở giữa của S. Đó là giá trị ngẫu nhiên thu được bằng cách sử dụng giá trị hạt giống s. Ví dụ, số ngẫu nhiên = 5425
  • Bây giờ, hãy sử dụng số ngẫu nhiên này làm giá trị hạt giống mới và tạo số ngẫu nhiên tiếp theo bằng cách thực hiện theo bước số 2
  • Nếu bạn muốn số từ 0 đến 1, hãy chia số kết quả cho số tối đa có thể được tạo bằng n chữ số. Ví dụ: 5425/9999 = 0. 54255425542
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

Chủ Đề