博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU1014 Uniform Generator
阅读量:6280 次
发布时间:2019-06-22

本文共 902 字,大约阅读时间需要 3 分钟。

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1014
这道题就是题目有点难懂,其实难度很小,就是产生伪随机数时给出的步长step和上限mod,判断下这两个值是否可以让产生的随机数均匀分布,所谓的均匀分布就是在mod步里能产生出0到mod-1这mod个数。
#include <iostream>
using namespace std;
const long int MAX_MOD = 100000;
bool gened[MAX_MOD] = {false};//数是否产生
void doRandomTest(int step,int mod)
{
    int seed = 0,tmp,i;//初始种子值为零
    for(i=0;i<mod;++i)
    {//刚开始数都未产生
        gened[i] = false;
    }
    gened[0] = true;//第一个产生的是零
    do
    {
        tmp = (seed+step)%mod;
        gened[tmp] = true;//第tmp个数已经产生了
        seed = tmp;//更新种子数
    }while(seed!=0);
    for(i=0;i<mod;++i)
    {
        if(gened[i]==false)//有数没有产生出来
            break;
    }
    if(i==mod)
    {
        printf("%10d%10d    Good Choice\n",step,mod);
    }
    else
        printf("%10d%10d    Bad Choice\n",step,mod);
    cout<<endl;
}
int main(int argc,char* argv[])
{
    int step,mod,i;
    while(cin>>step>>mod)
    {
        doRandomTest(step,mod);
    }
    return 0;
}
本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2007/12/29/1019397.html,如需转载请自行联系原作者
你可能感兴趣的文章
树莓派(Debian)系统设置了静态IP之后还会获取动态IP的问题解决(scope global secondary eth0)...
查看>>
Redis(九):使用RedisTemplate访问Redis数据结构API大全
查看>>
004-spring-data-elasticsearch 3.0.0.0使用【二】-spring-data之定义方法、创建repository实例、从聚合根发布事件...
查看>>
【转】PHP实现系统编程(四)--- 本地套接字(Unix Domain Socket)
查看>>
ajax 二级联动与springmvc 交互
查看>>
Java知识体系
查看>>
webstorm 重置所有设置
查看>>
npm 如何查看一个包的版本信息?
查看>>
MikroTik RouterOS使用VirtualBox挂载物理硬盘作为虚拟机硬盘进行安装
查看>>
【原】javascript笔记之this用法
查看>>
『参考』使用.net CF自带库判断设备的连接状态
查看>>
CJK专题
查看>>
css:Media Queries
查看>>
在MonoTouch中自定义表格
查看>>
Unix ls命令的实现
查看>>
深入分析 Java 中的中文编码问题(转)
查看>>
(转)PowerDesigner 12.5下载
查看>>
c#初学-LINQ查询表达式基础
查看>>
Delphi中destroy, free, freeAndNil, release用法和区别
查看>>
一些iOS高效开源类库
查看>>