xtuoj 随机数

题目

思路

这个地方按照题目给定的表达式进行操作即可,可以看到这个地方%m,所以产生的数只能在0~m-1之间,即最多有m个状态,周期最大为m,所以我们取前m个即可查看是否能产生0~m-1的数,我们可以采用一个标志数组,这个标志数组的下标就对应0~m-1这些数,先初始化为0,代表未产生,后面产生的x,我们可以就用x这个变量,也可以用x数组,然后最后判断的时候,可以遍历这个标志数组,如果有一个数未产生,直接输出No,直接结束判断,如果循环遍历完成,则说明m个数都产生了,输出Yes;还有一种思路,就是用cnt记录标志数组有多少个1,标志数组为1,则说明产生了这个数,如果cnt==m,则输出Yes,否则输出No

代码一

cpp 复制代码
#include<stdio.h>
#include<stdbool.h>

int main(){
    int a,c,m,x=0;
    while(scanf("%d%d%d",&a,&c,&m)!=EOF){
    int cnt=0;
    bool arr[10010]={false};
    arr[0]=true;
    for(int i=0;i<m;i++){
        x=(a*x+c)%m;
        arr[x]=true;
    }
    for(int i=0;i<m;i++){
        if(arr[i]==true) cnt++;
    }
    if(cnt==m) printf("Yes\n");
    else printf("No\n");   
    }
    
    return 0;
}

代码二

cpp 复制代码
#include<stdio.h>
#define N 10010

int a,c,m;
int x[N];

int main(){
	while(~scanf("%d%d%d",&a,&c,&m)){
		x[0]=0;
		int y[N]={0};
		for(int i=0;i<m;i++){
			x[i+1]=(a*x[i]+c)%m;
			y[x[i]]=1;
		}
		int flag=0;
		for(int i=0;i<m;i++){
			if(y[i]==0){
				flag=1;
				printf("No\n");
				break;
			}
		}
		if(!flag) printf("Yes\n");
	}
	
	return 0;
}

代码三

cpp 复制代码
#include<stdio.h>

int a,c,m,x,flag;

int main(){
	while(~scanf("%d%d%d",&a,&c,&m)){
		int y[10010]={0};
		x=0;
		for(int i=0;i<m;i++){
			x=(a*x+c)%m;
			y[x]=1;
		}
		int flag=0;
		for(int i=0;i<m;i++){
			if(y[i]==0){
				flag=1;
				printf("No\n");
				break;
			}
		}
		if(!flag) printf("Yes\n");
	}
	
	return 0;
}
相关推荐
2401_831824962 小时前
基于C++的区块链实现
开发语言·c++·算法
We་ct2 小时前
LeetCode 918. 环形子数组的最大和:两种解法详解
前端·数据结构·算法·leetcode·typescript·动态规划·取反
愣头不青2 小时前
238.除了自身以外数组的乘积
数据结构·算法
人工智能AI酱2 小时前
【AI深究】逻辑回归(Logistic Regression)全网最详细全流程详解与案例(附大量Python代码演示)| 数学原理、案例流程、代码演示及结果解读 | 决策边界、正则化、优缺点及工程建议
人工智能·python·算法·机器学习·ai·逻辑回归·正则化
WangLanguager2 小时前
逻辑回归(Logistic Regression)的详细介绍及Python代码示例
python·算法·逻辑回归
m0_518019482 小时前
C++与机器学习框架
开发语言·c++·算法
一段佳话^cyx2 小时前
详解逻辑回归(Logistic Regression):原理、推导、实现与实战
大数据·算法·机器学习·逻辑回归
qq_417695052 小时前
C++中的代理模式高级应用
开发语言·c++·算法
xiaoye-duck3 小时前
《算法题讲解指南:动态规划算法--路径问题》--5.不同路径,6.不同路径II
c++·算法·动态规划
ambition202423 小时前
最大子数组和算法全解析:从暴力枚举到动态规划优化
数据结构·c++·算法