Với cùng giá trị hạt giống, các trường hợp ngẫu nhiên riêng biệt sẽ trả về/tạo cùng một chuỗi các số ngẫu nhiên; hơn về vấn đề này ở đây: http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Tech/Chapter04/javaRandNums.html
của Ruby Ví dụ:
class LCG; def initialize(seed=Time.now.to_i, a=2416, b=374441, m=1771075); @x, @a, @b, @m = seed % m, a, b, m; end; def next(); @x = (@a * @x + @b) % @m; end; end
irb(main):004:0> time = Time.now.to_i
=> 1282908389
irb(main):005:0> r = LCG.new(time)
=> #<LCG:0x0000010094f578 @x=650089, @a=2416, @b=374441, @m=1771075>
irb(main):006:0> r.next
=> 45940
irb(main):007:0> r.next
=> 1558831
irb(main):008:0> r.next
=> 1204687
irb(main):009:0> f = LCG.new(time)
=> #<LCG:0x0000010084cb28 @x=650089, @a=2416, @b=374441, @m=1771075>
irb(main):010:0> f.next
=> 45940
irb(main):011:0> f.next
=> 1558831
irb(main):012:0> f.next
=> 1204687
Dựa trên các giá trị a/b/m, kết quả sẽ là như nhau đối với một hạt giống nhất định. Điều này có thể được sử dụng để tạo ra cùng một "ngẫu nhiên" số ở hai nơi và cả hai bên có thể phụ thuộc vào nhận được kết quả tương tự. Điều này có thể hữu ích cho việc mã hóa; mặc dù rõ ràng, thuật toán này không an toàn về mặt mã hóa.
Theo sau tuyên bố đó khá đơn giản. 'Ngẫu nhiên r1, r2', tạo và khởi tạo với cùng một hạt giống (xem tài liệu). Gọi 'next' 5 lần trên mỗi lần. Chúng sẽ trả về cùng một chuỗi 5 số ngẫu nhiên chính xác. – polygenelubricants