LCG:线性同余算法

Python024

LCG:线性同余算法,第1张

递推公式:

其中A,B,M是产生器设定的常数。

LCG的周期最大为M,但大部分情况都会少于M。要令LCG达到最大周期,应符合以下条件:

1、B,M互质;

2、M的所有质因数都能整除A-1;

3、若M是4的倍数,A-1也是;

4、A,B,N0都比M小;

5、A,B是正整数。

从该式可以看出,该算法由于构成简单,具有以下优点:

其中B和M的选择对计算结果影响很大:

Python2.7.18源码应用LCG截取:

wiki-Linear_congruential_generator

首先你要找到源码的位置,你可以使用下面的方法:

如果你可以在命令行运行python,你可以使用下面的命令查看目录。

>>> import string

>>> string.__file__

'/usr/lib/python2.7/string.pyc'

>>>

对应目录下的string.py就是package的源码,不过有些库因为是c写的,会提示错误,这样的库就需要你下载python源码,直接看c的源文件了。 

如果解决了您的问题请采纳!

如果未解决请继续追问!

最近在学习python源码,感觉python的IDLE使用起来不是太方便,所以选择交互性良好的ipython来进行学习。

但是系统自带的python没有源码,所以要修改python源码是不可能的,所以得自己去官网下载并安装相应的python版本

为了使得在学习python源码过程更方便,我们可以配置自己安装的python版本使用相应版本的ipython。

1. 首先得正确安装ipython,命令为pip install ipython

2. 安装自己的python版本,我是安装在/home/foo/python/python2.7.6下

3. 查看已经ipython的安装路径,使用which ipython命令查看

4. 编辑/usr/local/bin/ipython,将#!行更改为你自己安装的python的路径

5. 查找已经安装的ipython的依赖关系,并将所有的依赖模块的路径提取出来(不同的系统可能依赖关系也不一样)

6. 在~/.bashrc中将环境变量PATHONPATH设置步骤5中提取的路径,并导出

7. 启动ipython,由于系统版本原因在启动时可能会出现一些警告,但是你可以比较轻松地根据提示去掉警告。