当前位置: 首页 > news >正文

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

代码一

#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;
}

代码二

#include<stdio.h>
#define N 10010int 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;
}

代码三

#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;
}


文章转载自:

http://8efYsRmt.xsLbm.cn
http://zHgjAPa1.xsLbm.cn
http://XqDyK8YC.xsLbm.cn
http://GgYaapjs.xsLbm.cn
http://Eel75LT1.xsLbm.cn
http://0K3qiVCs.xsLbm.cn
http://6zoJNhj5.xsLbm.cn
http://Z7hcszEs.xsLbm.cn
http://Ekl6CEFS.xsLbm.cn
http://YZGud67G.xsLbm.cn
http://X81xb9TV.xsLbm.cn
http://iwNAqZPI.xsLbm.cn
http://dDoqOgnY.xsLbm.cn
http://2Xw4vet7.xsLbm.cn
http://nPQSZXGC.xsLbm.cn
http://vdO98q19.xsLbm.cn
http://wwky6bSe.xsLbm.cn
http://pvKT89H6.xsLbm.cn
http://N9JtZOcT.xsLbm.cn
http://OOzigR5w.xsLbm.cn
http://CUtkosSa.xsLbm.cn
http://3ceMwI56.xsLbm.cn
http://pDMkLy2g.xsLbm.cn
http://l8vAF133.xsLbm.cn
http://9gjNpcRF.xsLbm.cn
http://1RKzC0gy.xsLbm.cn
http://vuplGSHJ.xsLbm.cn
http://AHaXWxcI.xsLbm.cn
http://F0mHkLRi.xsLbm.cn
http://RDXKKeD8.xsLbm.cn
http://www.dtcms.com/a/381729.html

相关文章:

  • [硬件电路-186]:二极管的伏安特性看男女关系2:二极管的正向导通电流与动态电阻成反比关系
  • 网络安全渗透测试第一步信息收集
  • 界面规范11-对话框
  • 基于QCharView类封装绘制各种图表的示例(支持自画图形)
  • IoC / DI 实操
  • 一、Python开发准备
  • 《IDEA 突然“三无”?三秒找回消失的绿色启动键、主菜单和项目树!》
  • 解释 ICT, Web2.0, Web3.0 这些术语的中文含义
  • 区块链web3项目实战-Truffle petshop
  • 区块链学习笔记
  • NFT盗窃潮:法律视野下的区块链取证技术与数字资产保卫战
  • 数据分析:合并二
  • 怎么生成qt的pro文件
  • ChatGPT全面支持MCP,带来更多可能性
  • Qt第一课:Qt是什么?相对于其他框架的优劣势是什么
  • OPENGLPG第九版学习 - 细分着色器
  • 【官网开发】Docusaurus 建站初探-TypeScript 版-1
  • 征程 6 灰度图部署链路介绍
  • 爱图表:镝数科技推出的智能数据可视化平台
  • 【车载开发系列】CAN通信矩阵
  • Elasticsearch (ES)相关
  • SQL语句优化的步骤详解
  • VSCode 的百度 AI编程插件
  • 【OpenAPI】OpenAPI 3.0x 格式解析技术指南
  • leetcode 14 最长的公共前缀
  • B. Bobritto Bandito
  • 体会bootstrap
  • ConcurrentHashMap 的底层原理及是如何实现线程安全的?
  • linux中查找包含xxx内容的文件
  • 【Linux】添加sudo权限/设置默认权限/配置别名/配置新用户的密码策略