PAP4.4-随机函数库random

在线练习 · 人工智能专业 2026级本科《Python人工智能程序设计》

说明

本练习在课堂内完成。请在本机使用 VS Code、Cursor 或 Devin Desktop 编写并运行,再将源代码与终端输出填入各题下方的文本框。

练习一:设置种子后生成数值

编写程序,按固定顺序生成一个 1 到 100 的整数、一个 0 到 1 的浮点数、一个指定区间的浮点数。再次设置同一种子后,下一个整数与第一次相同。

要求

  • 在程序中按下面的顺序写入。先导入 random,再设置种子,然后打印三个随机数,最后再次设置种子并打印整数。
import random

random.seed(42)
print(random.randint(1, 100))
print(random.random())
print(random.uniform(1.5, 8.7))
random.seed(42)
print(random.randint(1, 100))
  • 四行输出依次为 82、0.11133106816568039、6.839163598270797、82。

练习二:选择元素并打乱列表

编写程序,从水果列表中随机选出一个,再打乱整数列表,并打印这两个结果。本题重新设置种子,不接续练习一的随机序列。

要求

  • 在程序中按下面的顺序写入。fruits 是待选水果,numbers 是待打乱的整数。
import random

random.seed(42)
fruits = ["苹果", "香蕉", "橙子", "葡萄", "草莓"]
print(random.choice(fruits))
numbers = [1, 2, 3, 4, 5]
random.shuffle(numbers)
print(numbers)
  • 两行输出依次为 苹果、[2, 4, 5, 3, 1]。

练习三:以随机点估计圆周率

编写程序,在边长为 2 的正方形内抽取 1000 个点,统计落在单位圆内的点数,并据此估计 π。

要求

  • 在抽样前只写入下面三行。设置种子后直接开始抽样,中间不再调用其他随机函数。n_points 是样本数。
import random

random.seed(42)
n_points = 1000
  • 每个点先取横坐标,再取纵坐标:
x = random.uniform(-1, 1)
y = random.uniform(-1, 1)
  • x * x + y * y <= 1 时,将 inside_circle 加 1。inside_circle 的初值为 0。
  • 抽满 1000 个点后,估计值为 4 * inside_circle / n_points。
  • 打印 圆内点数:795。估计值保留小数点后 4 位,打印 π估计:3.1800。