import random
x=[str(random.randint(0, 5)) for i in range(10)]
x_str=''.join(x) y=[str(random.randint(0, 5)) for i in range(100000000)]
y_str=''.join(y) if x_str in y_str:
print("共有多少:")
print(y_str.count(x_str))
print('第一个出现位置')
print(y_str.find(x_str))
else:
print("没有")

如上面代码所示, 突然想起来编程语言中的随机数产生是采用线性同余发生器产生的,那么既然是尾随机数它必然有重复的时候,那么我们有没有可能找到它重复的时候,或者发行一个周期呢,所以由此写了上面的代码。

注: 该代码比较吃内存没有16G 内存的电脑可能是跑不了上面的代码的。

一共跑了两次, 结果如下图:

首先并没有发现什么周期可言,估计这个笨方法是发现不了的,前提是它真的有周期;

其次, 我们发现及时是5以内的整数, 产生的序列出现重复的时候都是要1000万个数生成以后才会出现重复的序列;

最后,我们知道伪随机数是会出现重复的,但是我们能遇到的可能性不大,理论上存在,实践中可以不考虑。

附加:

如果随机数的产生设置为 100以内的整数,  跑了N多次也没有发现重复的序列。  即修改上面代码:

random.randint(0, 5)  为
random.randint(0, 100)

由此可以发现伪随机数其实还是比较靠谱的。

python3 线性同余发生器 ( random 随机数生成器 ) 伪随机数产生周期的一些探究的更多相关文章

  1. 解密随机数生成器(二)——从java源码看线性同余算法

    Random Java中的Random类生成的是伪随机数,使用的是48-bit的种子,然后调用一个linear congruential formula线性同余方程(Donald Knuth的编程艺术 ...

  2. Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom(转)

    文中的 Random即:java.util.Random,ThreadLocalRandom 即:java.util.concurrent.ThreadLocalRandomSecureRandom即 ...

  3. Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

    Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom 文中的 Random即:java.util.Random,ThreadLocalRandom 即: ...

  4. [nRF51822] 16、nRF51822的随机数生成器,及随机数生成器的一些知识(可以帮您补补随机数发生器的知识)

    1.前言 随机数生成器在通信.加密.图像传输等领域应用广泛,且一般起到关键性作用.我在最近设计的一个近场射频通信协议的碰撞避退算法的过程中,便对此有深深体会. 2.伪随机数发生器 随机数发生器一般包括 ...

  5. [转]Java中的随机数生成器:Random,ThreadLocalRandom,SecureRandom

     详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp84 Random即:java.util.Random, ThreadL ...

  6. Random.org -- 真正的随机数生成器

    接触过程序设计的人一定对随机数不陌生.随机数的用途非常广,比方在測试.分布和统计程序.游戏中. 大多数编程语言也提供了随机数库.能够方便的使用. 只是从严格意义上来讲,这些程序生成的随机数并非真正的随 ...

  7. 【原创】开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器

                   本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新  开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...

  8. 开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器

    原文:[原创]开源Math.NET基础数学类库使用(13)C#实现其他随机数生成器                本博客所有文章分类的总目录:http://www.cnblogs.com/asxiny ...

  9. BZOJ-2875 随机数生成器 矩阵乘法快速幂+快速乘

    题目没给全,吃X了... 2875: [Noi2012]随机数生成器 Time Limit: 10 Sec Memory Limit: 512 MB Submit: 1479 Solved: 829 ...

随机推荐

  1. 通过gevent实现【单线程】下的多socket并发

    server import sys import socket import time import gevent from gevent import socket,monkey monkey.pa ...

  2. python 本地化 local

    locale 模块提供了 C 本地化( localization )函数的接口, 如 Example 8-1 所示. 同时提供相关函数, 实现基于当前 locale 设置的数字, 字符串转换. (而 ...

  3. mvn编译

    mvn clean install -pl com:boss -am -DskipTests

  4. Atcoder Yet Another Palindrome Partitioning(状压dp)

    Atcoder Yet Another Palindrome Partitioning 思路: 一个字符串满足条件的情况是奇数字母个数小于等于1,也就是异或起来是1<<j(0<=j& ...

  5. export与export default exports与module.exports的用法

    转载:http://blog.csdn.net/zhou_xiao_cheng/article/details/52759632 本文原创地址链接:http://blog.csdn.net/zhou_ ...

  6. Java IO流-File类

    2017-10-24 23:50:22 File类 File类:文件和目录路径名的抽象表示形式.该文件或者目录不一定真实存在. * 构造方法 File类有四种构造方法,主要采用的构造方法师第二种,也就 ...

  7. Jmeter JDBC的使用

    1.当我们在对接口进行断言或进行多个接口串联时,常常会需要从DB查询数据来做辅助,连接JDBC需要有支持DB的jar包:官网下载地址:https://dev.mysql.com/downloads/c ...

  8. LncRNA

    简介:长链非编码RNA(Long non-coding RNA, lncRNA)通过多种机制发挥其生物学功能, 这些机制包括基因印记.染色质重塑.细胞周期调控.剪接调控.mRNA降解和翻译调控等.ln ...

  9. English trip -- VC(情景课)4 D

    What do you see? I can see three men in the pictrue. one older man is a doctor, two younger men are ...

  10. 3-15 《元编程》第6章 3-16 hook method

    Code That Writes Code 6.1 Coding your way to the weekend 6.2 Kernel#eval, Binding#eval Binding: Obje ...