第29 届全国青少年信息学奥林匹克竞赛 CCF NOI 2012 第一试 竞赛时间:2012 年7 月30 日 8:00-13:00 题目名称 随机数生成器 骑行川藏 魔幻棋盘 目录 random bicy cling chess 可执行文件名 random bicy cling chess 输入文件名 random
in bicy cling
in chess
in 输出文件名 random
ou t bicy cling
ou t chess
ou t 每个测试点时限 1 秒 1 秒 5 秒 内存限制 512MB 512MB 512MB 测试点数目 20 20 10 每个测试点分值 5 5 10 是否有部分分 否 否 否 题目类型 传统型 传统型 传统型 是否有附加文件 无 无 无 提交源程序须加后缀 对于 C++ 语言 random
cpp bicy cling
cpp chess
cpp 对于 C 语言 random
c bicy cling
c chess
c 对于 Pascal 语言 random
pas bicy cling
pas chess
pas 注意:最终测试时,所有编译命令均不打开任何优化开关
第29 届全国青少年信息学奥林匹克竞赛 第一试 随机数生成器 第2 页 共7 页 随机数生成器 【问题描述】 栋栋最近迷上了随机算法,而随机数生成是随机算法的基础
栋栋准备使用线性同余法(Linear Congru ential Method)来生成一个随机数列,这种方法需要设置四个非负整数参数 ᵅ,ᵄ, ᵅ, ᵄ0,按照下面的公式生成出一系列随机数: ᵄᵅ+1 = (ᵄᵄᵅ + ᵅ) ᵈᵉᵈ ᵅ 其中 ᵈᵉᵈ ᵅ 表示前面的数除以 ᵅ 的余数
从这个式子可以看出,这个序列的下一个数总是由上一个数生成的
用这种方法生成的序列具有随机序列的性质,因此这种方法