Python 中的 Seed

2024 年 8 月 29 日 | 5 分钟阅读

这并非真正随机,而是用于生成伪随机值。这意味着这些随机值是可以预测的。在某些情况下,random() 方法会生成数字。这个数量也被称为种子值。

语法

参数

i: 用于生成随机整数的任何值。

version: 一个整数,指定如何将 l 转换为整数。

返回值: 一个随机值。

Seed函数如何工作?

seed 方法保存了随机数生成器的状态,以便生成器可以在重复实现相同或不同计算机上的程序时(对于特定的种子值)生成相同的随机值。生成器创建的前一个数字作为种子值。如果没有初始值,它第一次会使用当前的系统时间戳。

使用 random.seed() 函数

我们将探讨如何每次都生成一个具有特定种子值的相同随机数。

代码

输出

586
586
586
586
586
586 

代码

输出

Random numbers after specifying a unique seed value: 
244
244
Random number generated without specifying that particular or any seed value: 
607
558

在 Python 中使用 Seed 和 randrange 函数

让我们看看如何使用 seed() 方法在指定的范围内生成相同的随机整数。

代码

输出

360
360

使用 Seed 函数和 Choice 方法

我们使用 random.choice() 方法从给定的列表或集合中选择一个随机项。通过指定一个唯一的种子值,我们可以每次都选择相同的选项。

代码

输出

The first random integer from the list:  9
The second random integer from the list after using the same seed value:  9

在 Random Seed 函数和 Sample 函数之间使用

我们可以使用 random sample() 方法从列表或序列数据类型中选择随机项。让我们看看如何使用 seed() 和 sample() 函数每次都从列表中检索相同的随机样本。

代码

输出

The first sample of integers after specifying a seed value  [4, 9, 3, 8]
The second sample of integers after stating the same seed value  [4, 9, 3, 8]

使用 Random Seed 函数和 Shuffle 函数

我们还可以组合使用 random 模块的 seed() 和 shuffle() 方法。将 seed() 与 shuffle() 函数结合使用的基本目标是在每次 shuffle 后获得相同的输出。如果我们每次执行 shuffle() 方法时都使用相同的种子值,我们将获得相同的元素序列。也就是说,shuffle 总是提供相同的结果。

代码

输出

The original list is:  [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
Shuffled list the first time [2, 6, 7, 1, 0, 5, 8, 3, 9, 4]
Shuffled list the second time [2, 6, 7, 1, 0, 5, 8, 3, 9, 4]

当执行前面的代码时,第一个打印语句显示了 shuffle 之前的原始列表。由于 random.shuffle() 方法会就地 shuffle 给定的列表,所以我们得到了列表的一个副本。然后我们指定了一个种子值并 shuffle 了第一个列表。然后我们使用相同的种子值 shuffle 了原始列表的副本。在两次 shuffle 尝试中,我们都获得了相同的元素序列。

Python 中 Random Seed 方法的用法

  • 这用于创建伪随机加密代码。加密密钥是计算机安全的关键组成部分。这些类型的密钥用于保护数据免受不必要的互联网访问。
  • 使用随机数可以轻松优化代码。通过 seed 方法,任务变得更加简单。代码的输出有时取决于输入。因此,使用随机数来评估算法可能很复杂。此外,seed 方法用于重复创建相同的随机整数,简化了算法测试过程。