news 2026/10/29 16:04:47

Python上机实验2|随机模拟与算法效率

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python上机实验2|随机模拟与算法效率

实验简介:

本次上机实验围绕 random 随机库

交互式猜数字游戏,增加输入校验、记录猜测过程、连玩3局求平均次数;

实现思路:
交互式猜数字游戏

  1. 使用 random.randint(1,100) 生成1~100随机答案。
  2. 用 try-except 捕获非整数输入,做合法性校验:输入必须是整数,范围1~100,不满足则提示重新输入,程序不会崩溃。
  3. 列表 history 记录每一轮猜测的数字,累加变量记录猜测次数。
  4. 一局猜完后打印猜测全过程,循环执行3局,最后计算三局的平均猜测次数。

程序运行结果示例

plaintext

=任务1:猜数字游戏,连玩3局=

—第1局—
请输入1~100的整数猜测:50
小了
请输入1~100的整数猜测:75
大了
请输入1~100的整数猜测:62
小了
请输入1~100的整数猜测:68
恭喜猜对!一共猜了4次
猜测过程:[50, 75, 62, 68]

—第2局—
请输入1~100的整数猜测:30
小了
请输入1~100的整数猜测:60
大了
请输入1~100的整数猜测:45
恭喜猜对!一共猜了3次
猜测过程:[30, 60, 45]

—第3局—
请输入1~100的整数猜测:20
小了
请输入1~100的整数猜测:80
大了
请输入1~100的整数猜测:50
小了
请输入1~100的整数猜测:65
大了
请输入1~100的整数猜测:57
恭喜猜对!一共猜了5次
猜测过程:[20, 80, 50, 65, 57]

3局游戏平均猜测次数:4.00

学习心得

本次实验让我直观感受到随机模拟和算法效率的巨大差距。

猜数字两种策略对比,直观理解线性算法和二分算法的效率差距。线性猜测是O(n),范围扩大,猜测次数线性上涨;二分是对数O(log₂n),范围扩大,猜测次数增长极其缓慢。

踩坑记录

任务1输入校验踩坑
一开始没有写 try-except ,如果输入字母,程序直接崩溃报错。
✅解决:捕获ValueError,区分「不是整数」和「超出数字范围」两类提示。

代码:
import random

def play_one_game():
“”“玩一局猜数字游戏,返回本局猜的次数”“”
target = random.randint(1, 100)
guesses = []
count = 0

print("\n=== 新的一局开始!我已经想好了一个 1~100 的数字 ===") while True: user_input = input("请输入你猜的数字:").strip() try: guess = int(user_input) except ValueError: print("⚠️ 输入的不是整数,请重新输入!") continue if guess < 1 or guess > 100: print("⚠️ 数字必须在 1~100 之间,请重新输入!") continue count += 1 guesses.append(guess) if guess > target: print("大了") elif guess < target: print("小了") else: print(f"🎉 恭喜你猜中了!答案就是 {target}") print(f"本局你一共猜了 {count} 次。") print("你的猜测过程:" + " → ".join(str(g) for g in guesses)) return count

def main():
total_times = 0
rounds = 3

for i in range(1, rounds + 1): print(f"\n########## 第 {i} 局 ##########") times = play_one_game() total_times += times average = total_times / rounds print(f"\n===== 3 局结束 =====") print(f"总猜测次数:{total_times}") print(f"平均每局用了 {average:.2f} 次")

ifname== “main”:

main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/19 22:54:41

中秋手抄报、手工灯笼要做了?材料先备这 3 样,不返工

中秋节快到了&#xff0c;很多学校会给孩子布置"中秋作业"&#xff1a;低年级做手工灯笼、画月亮&#xff0c;中年级画手抄报、写中秋主题的小作文。老师一声令下&#xff0c;家长群里就开始"求素材、求模板"了。别等节前两三天再抓瞎&#xff0c;材料先备…

作者头像 李华
网站建设 2026/10/15 20:34:01

NLP 基础到高级 09:序列到序列模型

序列到序列模型 两个 RNN 假装是翻译器。它们遇到的瓶颈正是注意力机制存在的原因。 类型: 构建 语言: Python 前置条件: Phase 5 08(CNN + RNN 处理文本),Phase 3 11(PyTorch 简介) 预计用时: ~75 分钟 问题 分类将可变长度序列映射到单个标签。翻译将可变长度序…

作者头像 李华
网站建设 2026/10/29 12:39:13

海口吊顶和柜体怎么接缝,两种做法的差别

吊顶与柜体的接缝有两种常见做法&#xff1a;柜体顶到吊顶的下沿&#xff0c;或者柜体穿过吊顶顶到楼板。两种做法在收口位置、可调节余量和后期检修上都不一样。选哪一种&#xff0c;取决于吊顶是否留了检修口、以及柜体到顶后的观感要求。落到工序上&#xff0c;海口整家定制…

作者头像 李华
网站建设 2026/10/16 19:56:57

【题解-洛谷】P1855 榨取kkksc03

题目&#xff1a;P1855 榨取kkksc03 题目描述 洛谷 2 的团队功能是其他任何 OJ 和工具难以达到的。借助洛谷强大的服务器资源&#xff0c;任何学校都可以在洛谷上零成本的搭建 OJ 并高效率的完成训练计划。 为什么说是搭建 OJ 呢&#xff1f;为什么高效呢&#xff1f; 因为&…

作者头像 李华
网站建设 2026/10/17 5:16:12

GEO 品牌诊断报告:咖墨 - 报告日期:2026-10-07

GEO 品牌诊断报告:咖墨报告版本:v1.0报告日期:2026-10-07诊断对象:咖墨目标市场:中国大陆数据采集期:2026-10-07(单日采集,联网检索与自测同日内完成)1 执行摘要 总分 52 / 100(数据覆盖率 95%,权重按有数据维度重归一化);单维度无数据维度(业务影响)已留空并列入第 11 节。 咖…

作者头像 李华
网站建设 2026/10/19 21:33:40

代码开源,C#获取mac电脑的开机时间!

代码开源&#xff1a;在macOS中使用P/Invoke 原理&#xff0c;C#获取mac电脑的开机时间&#xff01;无废话&#xff0c;代码如下&#xff1a;using System; using System.Runtime.InteropServices;namespace YuanMacLib {public class MacBootTime{[DllImport("libc"…

作者头像 李华