一个简单的随机数生成器可以通过下列公式获得 rnew = (a*rold + b)%m 然后设置 rold 的值为 rnew。 编写程序要求用户为 rold 输入一个初始值,这个值一般称为种子。然后输出由上面的公式 生成的前 100 个随机数。使用 a=32310901,b=1279 和 m=2^24.
求解答(╥ω╥`)
a = 32310901
b = 1279
m = 2 ** 24
def generate_random_numbers(seed, num):
rold = seed
random_numbers = []
for _ in range(num):
rnew = (a * rold + b) % m
random_numbers.append(rnew)
rold = rnew
return random_numbers
seed = int(input("请输入种子值(rold): "))
random_numbers = generate_random_numbers(seed, 100)
print("前100个随机数:")
for num in random_numbers:
print(num)
不知道你这个问题是否已经解决, 如果还没有解决的话:# 导入random模块
import random
# 定义生成随机数的函数
def generate_random_numbers(rold):
# 定义参数
a = 32310901
b = 1279
m = 2**24
# 初始化结果列表
result = []
# 循环生成100个随机数
for i in range(100):
# 使用公式生成随机数
rnew = (a * rold + b) % m
# 更新rold为rnew,作为下次生成的上一个随机数
rold = rnew
# 将生成的随机数添加到结果列表中
result.append(rnew)
# 返回生成的随机数列表
return result
# 用户输入初始值rold
rold = int(input("请输入一个初始值rold:"))
# 调用生成随机数的函数并输出结果
random_numbers = generate_random_numbers(rold)
print("生成的前100个随机数为:", random_numbers)
以上代码中,首先导入random模块,然后定义了一个generate_random_numbers
函数来生成随机数。函数接收一个初始值rold作为参数,根据公式循环生成100个随机数,并将这些随机数添加到结果列表中。最后,用户输入一个初始值rold,通过调用generate_random_numbers
函数生成随机数并输出结果。
注意:根据题目要求,参数a、b和m是固定的值,所以可以直接在函数中定义。如果要求用户可以输入这些参数,可以将其作为函数的参数传入。