Python 中的随机种子函数

Abdul Jabbar 2023年1月3日 2021年12月4日
Python 中的随机种子函数

如果你想要赌博或电脑游戏的意外结果随机数,则必须从 Python 中的内置方法创建随机数。它在密码学中也很有用,因为它有助于创建黑客或攻击者无法猜测的随机数。

seed 过程用于重新启动随机数生成器。随机数生成器需要一个以(种子值)开头的数字,才能生成随机数。这可以是任何数字,但通常来自计算机系统时钟上的秒数。默认情况下,随机数生成器使用计算机的实际时间。使用方法自定义随机数生成器的起始编号。

伪随机数通过对值执行一些函数来生成任务。通常,此值是生成器生成的前一个数字。无论如何,第一次使用生成器时,没有以前的值。

注意
如果使用相同的种子值两次,将得到两次相同的随机数;我们将在下面的代码示例中看到这种情况。

当你调用此方法时,不要期望它是唯一的数字,因为计算机并不总是计算真正的随机数,因为它适用于某些预定义的规则集。如果你想增加一些随机性,你必须为你的过程创建一些规则;例如,要在表达式中用 x 为你的过程创建一个方程,添加 600 +x,然后用 30 减去它。让我们将 x(种子值)设为 40。

  • 加 600 + 40 = 640
  • 减去 30 = 614

遵循相同的算法,第二个随机数将是。

  • 加 600 + 30 = 630
  • 减去 30 = 600

这个简单的例子遵循某种特定的模式,但是计算机数字生成背后的算法比我在这里做的更好地模仿随机性要困难得多。但是这个过程仍然遵循一定的模式,下次你输入 40 或你在随机种子中选择的任何数字时都会重复这种模式。

Python 中的随机种子函数

在此代码块中,我们将生成 0 到 100 之间的随机数并生成 3 次以进行验证。第一次和第二次,我们给相同的种子,第三次,没有种子或改变种子值。首先,我们将在我们的代码中导入随机函数并提供种子为 3,这将为我们提供值 31 作为随机数,然后我们将提供相同的种子,它将再次为我们提供相同的数字,因为种子是相同的。但是当我们提供新的种子或不提供种子时,值总是不同的。

import random 
random.seed(4)  
print(random.randint(1, 100))  
random.seed(4)  
print(random.randint(1, 100))    
print(random.randint(1, 100))  

输出:

31
31
39

使用 random.randint 函数会生成一个随机数而不做任何其他事情。如果你希望保持对相同随机生成数字的使用,就这么简单,你应该使用种子函数。

Author: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn