关于#python#的问题,如何解决?

题3:编写程序,输入任意一个数字n,再输入你的学号m,自己设计一个运算过程,可以产生指定要求的随机数。
要求:(1)产生的随机数要对初始值n敏感,并且可复现,程序中需使用学号m,更换不同的学号,产生的随机数原理也不同。即:输入不同的n产生的随机数不同,并且输入相同的n产生的随机数相同。(初值敏感程度大于10-5 ,例如n=0.12345与n=0.12346产生的随机数不同)
#程序:

#结果:

(2)利用上一步你编写的代码,产生0-100以内的随机数,并开发猜数字游戏。
输入:输入任意一个数字n,再输入你的学号m,产生随机数,让玩家去猜。
玩家不限次数挑战,猜对后统计玩家猜的次数。
#程序:

#结果:

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7695866
  • 除此之外, 这篇博客: python基础练习题中的 题目二十:小欧想在学校中请一些同学一起做一项问卷调查,为了实验的客观性他先用计算机生成了N个1~1000之间的随机整数(N<=1000),N是用户输>入的,对于其中重复的数字,只保留一个,把其余相同的数字去掉,不同的数对应着不同的学生的号,然后再把这些数从小到大排序,按照排好的顺序去找同学做调查,请你协助小欧完成“去重”与“排序”工作 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 代码解析:

    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))
    
    
  • 以下回答由chatgpt基于相关博客总结生成:

    我需要帮助编写程序产生指定要求的随机数,并开发一个猜数字游戏。需要让玩家输入任意的数字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()