题3:编写程序,输入任意一个数字n,再输入你的学号m,自己设计一个运算过程,可以产生指定要求的随机数。
要求:(1)产生的随机数要对初始值n敏感,并且可复现,程序中需使用学号m,更换不同的学号,产生的随机数原理也不同。即:输入不同的n产生的随机数不同,并且输入相同的n产生的随机数相同。(初值敏感程度大于10-5 ,例如n=0.12345与n=0.12346产生的随机数不同)
#程序:
#结果:
(2)利用上一步你编写的代码,产生0-100以内的随机数,并开发猜数字游戏。
输入:输入任意一个数字n,再输入你的学号m,产生随机数,让玩家去猜。
玩家不限次数挑战,猜对后统计玩家猜的次数。
#程序:
#结果:
代码解析:
import random
u = int(input("输入你想随机调查的人数:"))
set1 = set()
for i in range(u):
N = random.randint(1, 1000)
set1.add(N)
print(sorted(set1, reverse=False))
我需要帮助编写程序产生指定要求的随机数,并开发一个猜数字游戏。需要让玩家输入任意的数字n和学号m,产生随机数并让玩家去猜,不限次数挑战,猜对后会统计玩家猜的次数。以下是具体的解决方案:
首先,我们可以利用Python的random模块中的seed函数和randint函数生成符合要求的随机数。seed函数可以根据输入的数字n来设置随机数的种子,保证相同的n会生成相同的随机数。而randint函数可以根据种子生成指定范围内的整数随机数。
代码如下:
import random
def generate_random(n, m):
# 根据n设置随机数种子
random.seed(n)
# 生成0~100之间的随机整数,并赋值给result
result = random.randint(0, 100)
# 让玩家开始猜数字
guess = int(input("请输入0~100之间的整数进行猜测:"))
# 猜数字的次数
count = 1
while guess != result:
if guess > result:
print("您输入的数字大了,请重试!")
else:
print("您输入的数字小了,请重试!")
count += 1
guess = int(input("请再次输入0~100之间的整数进行猜测:"))
print("恭喜您,猜对了!您总共猜了%d次。" % count)
return count
# 测试代码
n = int(input("请输入任意一个数字n:"))
m = int(input("请输入您的学号m:"))
generate_random(n, m)
在上面的代码中,我们定义了一个名为generate_random的函数,它需要输入两个参数n和m。根据n设置随机数种子后,利用randint函数生成0~100之间的随机整数,并保存为result变量。随后,玩家需要输入一个0~100之间的整数进行猜测,每猜一次就会提示猜大了还是猜小了,并且记录猜的次数count,直到玩家猜对为止。猜对后,函数会输出猜的次数count,并返回该值。
我们可以通过调用这个函数来实现一个猜数字游戏。玩家只需要输入任意的数字n和学号m即可开始游戏,并且可以不限次数挑战。
希望这个解决方案能够帮到您!
import random
def suiji(n, m):
random.seed(m)
r = random.uniform(0, n)
return r
def caishu():
n = float(input("n:"))
m = input("学号m:")
random_number = suiji(n, m)
target = int(random_number * 100)
cnt = 0
while True:
guess = int(input("猜数:"))
cnt += 1
if guess < target:
print("小了,请继续!")
elif guess > target:
print("大了,请继续!")
else:
print(f"恭喜你猜对了!一共猜测了{cnt}次。")
break
caishu()