zoukankan      html  css  js  c++  java
  • HDU 1014 Uniform Generator 欧几里得

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014

    解题思路:

    1. 把题目意思读懂后,明白会输入两个数,然后根据题中的公式产生一系列伪随机数,看这些数是不是能够包含0~MOD-1。如果产生不了就输出“Good Choice”,否则输出“Bad Choice”。

    2. 全部假使x从0开始,设STEP为a,MOD为b。如果说a,b存在倍数关系,即假设最小存在2倍关系,那么就会有b=2a。x初始为0,第一步之后为a,第二步之后为0,之后a、0交替出现。周期为2,那么始终都不会产生0~b-1的全部数。以此类推,只要存在几倍关系,周期就为几。可见,两数存在倍数关系就不会得到全部数列。则2a与3a也不会有结果。所以说,当两数存在公约数,即两数不互质,就不会产生一系列数。

    3. 如果两数互质,举一个最简单的例子。令a=b+1。则x初始为0,第一步之后为1,第二步之后为2,第三步之后为3,则可以产生一系列伪随机数满足题中要求。

    4. 编写代码时注意最后输出,C++输出默认右对齐。

    源代码:

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int t,n,m,a,b;
     5     while(scanf("%d%d",&m,&n)!=EOF)
     6     {
     7         a=m;
     8         b=n;
     9         if(m<n)
    10         {
    11             t=m;
    12             m=n;
    13             n=t;
    14         }
    15         if(n==0)
    16         {
    17             n=m;
    18         }
    19         else
    20         {
    21             while(m%n!=0)
    22             {
    23                 t=m%n;
    24                 m=n;
    25                 n=t;
    26             }
    27         }
    28         if(t==1)
    29             printf("%10d%10d    Good Choice
    
    ",a,b);
    30         else
    31             printf("%10d%10d    Bad Choice
    
    ",a,b);
    32 
    33     }
    34     return 0;
    35 }
    View Code
    
    
  • 相关阅读:
    51 Nod 1068 Bash游戏v3
    51 Nod Bash 游戏v2
    51 Nod 1073 约瑟夫环
    UVA 12063 Zeros and ones 一道需要好好体会的好题
    51 Nod 1161 Partial sums
    2018中国大学生程序设计竞赛
    UVA 11971 Polygon
    UVA 10900 So do you want to be a 2^n-aire?
    UVA 11346 Possibility
    python with as 的用法
  • 原文地址:https://www.cnblogs.com/lemonbiscuit/p/7776154.html
Copyright © 2011-2022 走看看