文档章节

洗牌算法

AndyZhouX
 AndyZhouX
发布于 2017/08/05 10:46
字数 187
阅读 8
收藏 0

        srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。srand和rand()配合使用产生伪随机数序列。

#include <stdlib.h>
#include <ctime>

void XiPai(int array[], int length)
{
    int index = 0;
    
    int nTemp = 0;

    if (NULL == array || 0 == length)
        return;

    srand(unsigned(time(NULL)));   //获取time函数返回的值,每次更改随机数种子,初始化随机数发生器

    //发牌的时候对于已经分配的数据不再修改
    for (int i = 0; i < length; i++)
    {
        //产生随机索引
        index = i + rand() % (length - i);

        
        //数据[新产生的索引] = 数据[原来的索引];
        nTemp = array[i];
        array[i] = array[index];
        array[index] = nTemp;
    }
}

© 著作权归作者所有

共有 人打赏支持
AndyZhouX
粉丝 2
博文 151
码字总数 102410
作品 0
深圳
程序员

暂无文章

自定义Ubuntu/Windows双系统引导菜单主题

学习Linux自然少不了要装双系统,其中Ubuntu便是我们用的最多的Linux系统。装完双系统后,Ubuntu会自动生成grub开机引导及菜单,及其丑陋,而且很多我们用不到的选项。今天我们就介绍burg:修...

Linux就该这么学
4分钟前
0
0
Go 并发(二)

Go Mutex 通过Mutex和信道处理竞态条件。 临界区 当程序并发运行时,多个协程不应该同时访问那些修改共享资源的代码,这些修改共享资源的代码称为临界区。 Go中通过Mutex可以避免同时访问临界...

春哥大魔王的博客
6分钟前
0
0
CentOS 7安装和部署Docker

Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。通过 uname -r 命令查看你当前的内核版本 uname -r3.10.0-514.el7.x86_64 1、...

狼王黄师傅
10分钟前
0
0
php扩展可以通过pecl 或者phpize 安装

pecl 算是 php 扩展的一个官方聚合平台,一些比较有名,有特点的扩展会被 pecl 收录,收录后可以通过 pecl 的方式安装。但是更多的扩展是没有收录在 pecl 上的,这些扩展还是需要通过 phpize...

bengozhong
10分钟前
0
0
CentOS中如何安装7ZIP

执行以下命令下载安装: wget http://nchc.dl.sourceforge.net/project/p7zip/p7zip/9.20.1/p7zip_9.20.1_src_all.tar.bz2tar -jxvf p7zip_9.20.1_src_all.tar.bz2cd p7zip_9.20.1make......

凯文加内特
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部