• (HDU)1014 --Uniform Generator(统一随机数生成)


    这个题目不难,关键是看懂英文:(判断两个数是否互质,而且注意输出的格式)

    描述
    计算机模拟通常需要随机数。生成伪随机数的一种方式是通过一定形式的函数:
    
    seed(x + 1)= [seed(x)+ STEP]%MOD
    
    其中''是模运算符。
    
    这样的函数将生成在0和MOD-1之间的伪随机数(种子)。这种形式的作用的一个问题就是,它们将总是重复地生成相同的模式。
    
    为了最小化这种影响,仔细选择STEP和MOD值,可以使得在0和MOD-1(包括这两者)之间的所有值的均匀分布。
    
    例如,如果STEP = 3和MOD = 5,该函数将在重复周期中生成一系列伪随机数0,3,1,4,2。在该示例中,将在函数的每个MOD迭代中生成包括0和MOD-1之间的所有数字。注意,由于每次产生种子(x)时生成相同种子(x + 1)的函数的性质,意味着如果函数将生成在0和MOD-1之间的所有数字,则它将均匀地生成伪随机数与每个MOD迭代。
    
    如果STEP = 15和MOD = 20,该函数生成系列0,15,10,5(或任何其他重复系列,如果初始种子不是0)。这是一个很差的STEP和MOD选择,因为没有初始种子将生成从0和MOD-1的所有数字。
    
    您的程序将确定STEP和MOD的选择是否将生成伪随机数的均匀分布。
    
    
    输入
    每一行输入将按顺序包含一对用于STEP和MOD的整数(1 <= STEP,MOD <= 100000)。
    
    
    输出
    对于每一行输入,您的程序应在第1列至第10列右对齐输出STEP值,第11列至第20列右对齐的MOD值,以及从第25列左对齐输出“Good Choice”或“Bad Choice” 。当生成MOD号时,选择STEP和MOD将生成0和MOD-1之间的所有数字时,应输出“Good Choice”信息。否则,您的程序应输出信息“Bad Choice”。在每个输出测试集之后,程序应该输出一个空白行。
    
    
    样例输入
    3 5
    15 20
    63923 99999
    
    
    样例输出
                3      5  Good Choice
    
              15   20   Bad Choice
    
         63923 99999   Good Choice
    问题
     1 #include <iostream>
     2 #include <cstdio>
     3 
     4 using namespace std;
     5 
     6 int gcd(int a, int b)
     7 {
     8     return a%b?gcd(b,a%b):b;
     9 }
    10 
    11 int main ()
    12 {
    13     char tab[2][15] = {"Bad Choice", "Good Choice"} ;
    14     int a, b ;
    15     while (~scanf ("%d%d", &a, &b))
    16     {
    17         printf ("%10d%10d    %s
    
    ", a, b, tab[gcd(a,b)==1]) ;
    18     }
    19     return 0 ;
    20 }
    精简代码
  • 相关阅读:
    jQuery基础
    Jquery正则表达式公式.例子
    jquery对象与js对象的相互转换
    windows用命令结束进程
    禅道 bug指向为数字问题解决过程
    delphi 触摸 手势
    二维码
    PowerDesigner 生成的脚本取掉双引号
    oracle执行sql文件
    fireDAC oracle
  • 原文地址:https://www.cnblogs.com/ACDoge/p/6123910.html
Copyright © 2020-2023  润新知