关于windows下c/c++的rand()的一些测试

int xs[]={-1,0,1,0};
int ys[]={0,-1,0,1};
int x=0,y=0;
for(int t=0;t<1<<18;t++){
    int d=rand()%4;
    x+=xs[d];y+=ys[d];
    在(x,y)绘制一个点;
}

根据rand()%4的值决定点的移动方向,生成图像如下,可以发现无论srand()设置的种子是什么,周期都为218 即262144

生成的图形形状方向也完全一样,但起点由于随机种子不同在图中的位置不同

rand()%8的周期为219

rand()%2n 周期为 2n+16  (0<n<=15)

rand()%3及模其它非2次幂的数则有较长的循环周期

rand()所生成的伪随机数有其非随机的对称性和循环性,可能会影响某些需要真随机数满足期望的算法的复杂度或正确率,但一般较难观察到rand()的规律性对很多随机化算法的影响

时间: 2024-12-18 07:31:34

关于windows下c/c++的rand()的一些测试的相关文章

Windows下MySQL的my.ini文件字符集测试

环境:Windows 8.1+MySQL 5.6.19 首先要说明的是Windows下MySQL的my.ini所在位置为:盘符\ProgramData\MySQL\MySQL Server 5.6下,也就是下图的Data Path下,如果是系统盘,ProgramData的文件夹是隐藏的;非系统盘此文件不是隐藏的.并不是Program Files下的. 2,查看my.ini文件,默认安装的编码都是utf8的. default-character-set=utf8 character-set-ser

【转】 详细介绍windows下使用python pylot进行网站压力测试

windows下使用python进行网站压力测试,有两个必不可少的程序需要安装,一个是python,另一个是pylot.python是一个安装软件,用来运行python程序,而pylot则是python的一个功能插件,作用是进行网站压力测试.本文将介绍在windows下如何使用python pylot进行网站压力测试. 一.安装python 如果你已经成功安装了python,那么可以忽略这步.否则,请首先正确安装python,确保能运行正常.可以看看这里,windows安装python详细教程

关于windows下的c++的rand函数详解

rand不是真正的随机函数,是伪随机函数 srand设置随机函数种子 srand设置一个参数后,每调用一次rand产生一个随机数 srand(1000001) rand  –  21589 rand  –  29335 rand  –  14469 srand参数相同,多次调用rand依次返回的值相同, srand (1000001) rand  - 21589 srand (1000001) rand  - 21589 srand (1000001) rand  - 21589 srand入参

Windows下尝试PHP7提示丢失VCRUNTIME140.DLL的问题解决

前天PHP7.0.0正式版发布了,有一些比较好的改进,官方也说速度比php5.6快了两倍,性能上有了很大提升,并且也发布了从php5.x向php7迁移的问题,所以今后php网站迁移后能够大幅度的提升网站性能,所以为了尝鲜我也去php官网下载了7.0的版本,通过命令行进行独立的测试,下载zip包后解压出来,下载后进入目录,将php.ini-development改为php.ini其余的参数暂时不用修改,然后在当前目录下新建test.php,输入简单的代码: 1 <?php 2 echo "H

一个windows下的ddos样本

一个windows下的ddos样本. 加载器 程序运行之后会在临时目录释放出一个256_res.tmp的文件 之后将该文件移动至system32目录下,以rasmedia.dll命名. 删除原文件. 加载开始释放的dll文件,并调用该dll导出的install函数. Rasmedia.dll 函数install会将将该dll注册成一个服务WinHelp32. 具体如下 服务运行之后会有两个线程开启. 一个线程用于和远端服务器进行通信. 一个线程会将自身拷贝到内存中,当发现映像文件被删除,会将自己

windows下使用openssl生成证书

一:下载 使用的是0.9.8 1:openssl下载,http://www.openssl.org/source/ 2:安装vs2010,并安装 3:下载perl,http://www.activestate.com/ActivePerl,并安装. 二:安装openssl 1:解压到系统盘C:\openssl-0.9.8v 2.配置WIN32环境 打开CMD命令行,进入C:\openssl-0.9.8v目录,执行命令 perl Configure VC-WIN32 注意区分大小写 3.进入VC

Windows下使用C语言实现2048

这是我之前写的一个小游戏,在windows下的Dev-C++中用C语言来实现的,通过不断的清屏,打印,清屏,打印来实现动态效果,不过功能不完善,有几个缺陷的地方. 实现效果(使用 w a s d 四个键来控制上下左右的移动) : 源代码(如果在Dev-C++中编译运行的时候报错,请将注释符号   //    换为  /**/ 来进行注释): #include <stdio.h> #include <stdlib.h> // for rand() and srand() and ex

windows下的两个等待函数

windows下的两个等待技术 第一种: Win32  Sleep()函数      这个函数要求操作系统中止线程动作,直到读过某个指定的时间之后才恢复.能在某个线程结束时(而不是某段时间结束时)被调用. 第二种:busy  loop(busy waits)      不断调用GetExitCodeThread(),直到其结果不再是STILL_ACTIVE. 缺点:浪费CPU时间. 绝对不要在Win32中使用busy loop //busywait.c /*Domonstrate the eff

最实用windows 下python+numpy安装(转载)

最实用windows 下python+numpy安装 如题,今天兜兜转转找了很多网站帖子,一个个环节击破,最后装好费了不少时间. 希望这个帖子能帮助有需要的人,教你一篇帖子搞定python+numpy,节约科研时间. 水平有限,难免存在不足,敬请指正. *******************python安装**************************************************** step1:官网下载安装包: https://www.python.org/ 我下载的