Random 生成随机数

Random 是 Python 内置的一个模块,主要用来生成伪随机数。随机数在计算机中有着广泛的应用,例如密码学、游戏开发、模拟等等。

Random 模块提供了几种生成随机数的方法,包括整数、实数、序列中的元素等等。下面我们将详细介绍 Random 模块的使用方法及相关案例说明。

1. 生成随机整数

Random 模块提供了 randint() 方法来生成指定范围内的随机整数。randint() 方法接收两个参数,表示随机数的范围,返回一个随机整数。

```python

import random

# 生成 1-10 之间的随机整数

num = random.randint(1, 10)

print(num)

```

运行结果:

```python

5

```

2. 生成随机实数

Random 模块提供了 random() 方法来生成 0 到 1 之间的随机实数。如果要生成指定范围内的随机实数,可以使用 uniform() 方法。uniform() 方法接收两个参数,表示随机数的范围,返回一个随机实数。

```python

import random

# 生成 0-1 之间的随机实数

num1 = random.random()

print(num1)

# 生成 1-10 之间的随机实数

num2 = random.uniform(1, 10)

print(num2)

```

运行结果:

```python

0.4042085631350329

7.514742197710994

```

3. 生成随机序列元素

Random 模块提供了 choice() 方法来在序列中随机选择一个元素。如果要从序列中随机选择多个元素,可以使用 sample() 方法。sample() 方法接收两个参数,第一个参数是序列,第二个参数是要选择的元素数量。

```python

import random

# 在列表中随机选择一个元素

list1 = [1, 2, 3, 4, 5]

elem1 = random.choice(list1)

print(elem1)

# 在列表中随机选择两个元素

list2 = ['a', 'b', 'c', 'd', 'e']

elem2 = random.sample(list2, 2)

print(elem2)

```

运行结果:

```python

3

['b', 'e']

```

4. 打乱序列顺序

Random 模块提供了 shuffle() 方法来打乱序列元素的顺序。shuffle() 方法接收一个序列作为参数,返回打乱后的序列。注意,shuffle() 方法会直接修改原序列,而不返回新序列。

```python

import random

# 打印原序列

list1 = [1, 2, 3, 4, 5]

print(list1)

# 打乱序列顺序

random.shuffle(list1)

print(list1)

```

运行结果:

```python

[1, 2, 3, 4, 5]

[4, 1, 2, 5, 3]

```

5. 固定随机数生成种子

Random 模块提供了 seed() 方法来固定随机数的生成种子。当给定一个 seed 值后,每次运行程序生成的随机数序列都是相同的。这在数据分析、科学实验等领域是非常有用的。

```python

import random

# 固定随机数生成种子

random.seed(0)

# 多次生成随机数

for i in range(5):

print(random.random())

```

运行结果:

```python

0.8444218515250481

0.7579544029403025

0.420571580830845

0.25891675029296335

0.5112747213686085

```

可以看到,每次运行程序生成的随机数序列都是相同的。

以上介绍了 Random 模块的几个常用方法。下面我们来看几个随机数生成的案例说明。

1. 猜数字游戏

这是一个非常简单的猜数字游戏,程序生成一个随机数,然后提示用户猜测该随机数是什么。如果用户猜对了,游戏结束,如果猜错了,程序会提示用户继续猜测。游戏会记录用户猜的次数,最终输出用户是否猜对以及猜测次数。

```python

import random

# 生成随机数

num = random.randint(1, 100)

# 初始化猜测次数

count = 0

# 开始游戏

while True:

# 用户猜测随机数

guess = int(input('请输入一个 1-100 的整数:'))

# 猜测次数加 1

count += 1

# 判断猜测是否正确

if guess == num:

print(f'恭喜你猜对了!共猜测了 {count} 次。')

break

elif guess < num:

print('你猜测的数值偏小,请继续猜测。')

else:

print('你猜测的数值偏大,请继续猜测。')

```

2. 掷骰子模拟

这是一个模拟掷骰子的程序,可以指定掷骰子的次数和骰子的面数。程序生成指定次数的随机数,模拟掷骰子的过程,并统计每个点数出现的次数。

```python

import random

# 掷骰子次数

n = int(input('请输入掷骰子次数:'))

# 骰子面数

m = int(input('请输入骰子面数:'))

# 统计每个点数出现的次数

counts = [0] * m

# 模拟掷骰子

for i in range(n):

num = random.randint(1, m)

counts[num-1] += 1

# 输出结果

for i in range(m):

print(f'{i+1} 点出现次数:{counts[i]},占比:{counts[i]/n:.2%}')

```

以上是 Random 模块的介绍及相关案例说明,希望对读者有所帮助。在实际应用中,可以根据具体需求综合使用 Random 模块的各种方法,生成满足需求的随机数序列。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(85) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部