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;
}
相关推荐
_OP_CHEN3 小时前
【算法基础篇】(五十七)线性代数之矩阵乘法从入门到实战:手撕模板 + 真题详解
线性代数·算法·矩阵·蓝桥杯·c/c++·矩阵乘法·acm/icpc
天天爱吃肉82183 小时前
【跨界封神|周杰伦×王传福(陶晶莹主持):音乐创作与新能源NVH测试,底层逻辑竟完全同源!(新人必看入行指南)】
python·嵌入式硬件·算法·汽车
im_AMBER3 小时前
Leetcode 114 链表中的下一个更大节点 | 删除排序链表中的重复元素 II
算法·leetcode
xhbaitxl4 小时前
算法学习day38-动态规划
学习·算法·动态规划
多恩Stone4 小时前
【3D AICG 系列-6】OmniPart 训练流程梳理
人工智能·pytorch·算法·3d·aigc
历程里程碑4 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
pp起床4 小时前
贪心算法 | part02
算法·leetcode·贪心算法
sin_hielo4 小时前
leetcode 1653
数据结构·算法·leetcode
2501_901147834 小时前
面试必看:优势洗牌
笔记·学习·算法·面试·职场和发展
YuTaoShao4 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法二)排序 + 二分查找
数据结构·算法·leetcode