LCG(Linear Congruential Generator)算法是一种常见的伪随机数生成器,可以生成接近均匀分布的随机数。以下是使用LCG算法生成(0,1)均匀分布随机数的代码及注释:
# LCG算法生成(0,1)均匀分布随机数
class LCGGenerator:
def __init__(self, seed):
self.seed = seed
self.multiplier = 1664525
self.increment = 1013904223
self.modulus = 2 ** 32
def generate(self):
self.seed = (self.multiplier * self.seed + self.increment) % self.modulus
return self.seed / self.modulus
# 示例代码
generator = LCGGenerator(12345) # 初始化随机数生成器,设置种子为12345
random_num = generator.generate() # 生成随机数
print(random_num)
注释解释:
LCGGenerator
类是实现LCG算法的随机数生成器。__init__(self, seed)
方法用于初始化随机数生成器。seed
参数为种子,是一个初始值,通过不同的种子可以生成不同的随机序列。generate(self)
方法用于生成一个随机数,它根据当前种子值计算下一个种子值,并返回生成的随机数。- 算法参数中的
multiplier
、increment
和modulus
是常数,可以根据具体需求进行调整,以获得理想的均匀分布效果。 - 示例代码展示了如何使用
LCGGenerator
类来生成一个(0,1)之间的均匀分布随机数。首先创建一个generator
对象,并设置种子为12345,然后使用generate
方法生成随机数,并将结果打印出来。
请注意,LCG算法是一种伪随机数算法,生成的随机数序列具有周期性,并不是真正的随机数。为了获得更好的随机性,可以结合其他随机数生成算法或使用更复杂的伪随机数算法。