博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【hdu - 1014】
阅读量:6969 次
发布时间:2019-06-27

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

Uniform Generator

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 9348    Accepted Submission(s): 3709

Problem Description
Computer simulations often require random numbers. One way to generate pseudo-random numbers is via a function of the form
seed(x+1) = [seed(x) + STEP] % MOD
where '%' is the modulus operator. 
Such a function will generate pseudo-random numbers (seed) between 0 and MOD-1. One problem with functions of this form is that they will always generate the same pattern over and over. In order to minimize this effect, selecting the STEP and MOD values carefully can result in a uniform distribution of all values between (and including) 0 and MOD-1. 
For example, if STEP = 3 and MOD = 5, the function will generate the series of pseudo-random numbers 0, 3, 1, 4, 2 in a repeating cycle. In this example, all of the numbers between and including 0 and MOD-1 will be generated every MOD iterations of the function. Note that by the nature of the function to generate the same seed(x+1) every time seed(x) occurs means that if a function will generate all the numbers between 0 and MOD-1, it will generate pseudo-random numbers uniformly with every MOD iterations. 
If STEP = 15 and MOD = 20, the function generates the series 0, 15, 10, 5 (or any other repeating series if the initial seed is other than 0). This is a poor selection of STEP and MOD because no initial seed will generate all of the numbers from 0 and MOD-1. 
Your program will determine if choices of STEP and MOD will generate a uniform distribution of pseudo-random numbers. 
 

 

Input
Each line of input will contain a pair of integers for STEP and MOD in that order (1 <= STEP, MOD <= 100000).
 

 

Output
For each line of input, your program should print the STEP value right- justified in columns 1 through 10, the MOD value right-justified in columns 11 through 20 and either "Good Choice" or "Bad Choice" left-justified starting in column 25. The "Good Choice" message should be printed when the selection of STEP and MOD will generate all the numbers between and including 0 and MOD-1 when MOD numbers are generated. Otherwise, your program should print the message "Bad Choice". After each output test set, your program should print exactly one blank line.
 

 

Sample Input
3 5 15 20 63923 99999
 

 

Sample Output
3 5 Good Choice 15 20 Bad Choice 63923 99999 Good Choice
 

 

Source
 

 

Recommend
JGShining
 
 
 
 
1 #include 
2 using namespace std; 3 4 int main() 5 { 6 int step,mod,t; 7 while(scanf("%d %d",&step,&mod)==2){ 8 printf("%10d%10d ",step,mod); 9 if(step>mod){ 10 t=step; 11 step=mod; 12 mod=t; 13 } 14 while(step){ 15 t=mod%step; 16 mod=step; 17 step=t; 18 } 19 if(mod==1) 20 cout<<"Good Choice\n\n"; 21 else 22 cout<<"Bad Choice\n\n"; 23 } 24 return 0;25 }

 

转载于:https://www.cnblogs.com/ismdeep/archive/2012/06/22/2559025.html

你可能感兴趣的文章
git 同步远程分支
查看>>
C语言中可变函数参数变量的实现
查看>>
《深入理解Java虚拟机》阅读笔记
查看>>
不错的silverlight教程
查看>>
软件工程师必须知道的事 —— 如何定义自己的职业路线?
查看>>
python__标准库 : 正则表达式(re)
查看>>
实现堆排、快排、归并
查看>>
登录后返回到登录页问题
查看>>
POJ 1743 Musical Theme(不可重叠最长重复子串)
查看>>
使用JPA储存Text类型的时候 出现乱码的问题
查看>>
cisco ssh配置
查看>>
Angular 选项卡
查看>>
设计模式之工厂方法模式
查看>>
Cap25_量化的项目管理
查看>>
Fragment 点击事件的穿透和重叠bug
查看>>
springBoot整合ftp上传图片功能
查看>>
34. Find First and Last Position of Element in Sorted Array
查看>>
113. Path Sum II
查看>>
Jenkins定时构建和轮询SCM设置说明
查看>>
Poj(2421),Prim最小生成树
查看>>