这个需求看过了,可以使用学号m和初始值n作为种子,并结合一定的数学运算来产生随机数。
可以将学号m和初始值n作为种子,通过SHA256哈希算法计算种子的哈希值。然后,我们取哈希值的前5位作为随机数的小数部分,再将小数部分与初始值n相加,得到最终的随机数。这样,对于相同的初始值n和相同的学号m,将生成相同的随机数,而对于不同的初始值或学号,生成的随机数也会不同。
import hashlib
def generate_random_number(n, m):
# 将学号m和初始值n组合成字符串作为种子
seed = str(n) + str(m)
# 使用SHA256哈希算法计算种子的哈希值
hash_value = hashlib.sha256(seed.encode()).hexdigest()
# 取哈希值的前5位作为随机数的小数部分
decimal_part = int(hash_value[:5], 16) / 0xFFFFF
# 将随机数的小数部分与初始值n相加,得到最终的随机数
random_number = decimal_part + n
return random_number
# 输入初始值n和学号m
n = int(input("请输入初始值n: "))
m = input("请输入学号m: ")
# 调用函数生成随机数
random_number = generate_random_number(n, m)
print("生成的随机数为:", random_number)
输入学号即可:
array1 = [1,2,3,4,5]
array2 = [1,3,3,5,5]