当前位置:   article > 正文

程序是规律的吗?python是如何随机的?_程序是确定的还是概率的

程序是确定的还是概率的

我们的行为符合自然定律,那么我们今天这些“巧合的成果”也必定是自然规律支配的结果。

如果我们的巧合只是纯粹的巧合,而并不是自然规律作用的结果,实际上是将人类放在了自然规律之外

言外之意,就是我们相信人类的行为(至少是思维)并不遵循自然规律,在人的脑子里,或者意识里,存在着另一个世界,这个世界的规律和真实世界只存在某种巧合的关系,而非响应的关系。

程序运行结果具有确定性

首先,程序的运行结果具有确定性,这个是公认的。

对于同一算法,给定相同的输入一定得到相同的输出。由于程序没办法做到对于给定的输入得到不同的输出,所以现有的随机算法,考虑的都是使得输入随机,从而最后的结果也是随机的。

计算机如果随机?

程序都是固定的,所以对于一个没有输入的程序,无论用什么算法,只能让每次执行的不同随机数随机,却不能让不同次执行的数随机。

所以一般随机数都需要一些随机种子,一般这种子可能是时间、或者某快内存的当前值,这些数值的分布明显是不随机的,所以目前的计算机无法生成真正的随机数。

我认为这个是当前计算机的体系决定的,跟你后面那个问题无关,既不能佐证,也不能否定。

 

 

python中的随机random

random()是Python中生成随机数的函数,是由random模块控制,random()函数不能直接访问,需要导入random 模块,然后再通过相应的静态对象调用该方法才能实现相应的功能。

random.random()

random.random()方法返回一个随机数,其在0至1的范围之内,以下是其具体用法:

  1. import random
  2. print ("随机数: ", random.random())
  3. 输出结果:0.22867521257116

random.uniform()

random.uniform()是在指定范围内生成随机数,其有两个参数,一个是范围上限,一个是范围下线,具体用法如下:

  1. import random
  2. print (random.uniform(2, 6)) 
  3. 输出结果:3.62567571297255

random.randint()

random.randint()是随机生成指定范围内的整数,其有两个参数,一个是范围上限,一个是范围下线,具体用法如下:

  1. import random
  2. print (random.randint(68))
  3. 输出结果:8
  4. # 每次结果都有随机

random.randrange()

random.randrange()是在指定范围内,按指定基数递增的集合中获得一个随机数,有三个参数,前两个参数代表范围上限和下限,第三个参数是递增增量,具体用法如下:

  1. import random
  2. print (random.randrange(6, 28, 3))
  3. 输出结果:15

random.choice()

random.choice()是从序列中获取一个随机元素,具体用法如下:

  1. import random
  2. print (random.choice("www.520m.com"))
  3. 输出结果:2
  4. print (random.choice(["石头""剪刀""布"]))
  5. 输出结果:布

`

random.shuffle()

random.shuffle()函数是将一个列表中的元素打乱,随机排序,具体用法如下:

  1. import random
  2. num = [1, 2, 3, 4, 5]
  3. random.shuffle(num)
  4. print (num)
  5. 输出结果:[3, 5, 2, 4, 1]

random.sample()

random.sample()函数是从指定序列中随机获取指定长度的片段,原有序列不会改变,有两个参数,第一个参数代表指定序列,第二个参数是需获取的片段长度,具体用法如下:

  1. import random
  2. num = [1, 2, 3, 4, 5]
  3. sli = random.sample(num, 3)
  4. print (sli)
  5. 输出结果:[2, 4, 5]

random是伪随机数,或称伪乱数,是使用一个确定性的算法计算出来的似乎是随机的数序,因此伪随机数实际上并不随机。

Python其实没有那么难。

作者:大雄
链接:https://www.zhihu.com/question/20263819/answer/14536057
作者:余天升
链接:https://www.zhihu.com/question/20263819/answer/14537663

更多好文

亲,需要你的“分享”“在看”

IT入门 感谢关注

程序员题库→

程序员用的单词表→

练习地址:www.520mg.com/it

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/834020
推荐阅读
相关标签
  

闽ICP备14008679号