已知线性同余的模数为945,怎么取a值和增量c值大最大周期呢
2条回答 默认 最新
- 瞬间的未来式 2023-04-07 16:54关注
参考一下
a和m互质,即它们的最大公约数为1;
c与m无公因数,即它们的最大公约数为1;
a-1能够被m的所有质因子整除;
如果m是4的倍数,则a-1也必须是4的倍数。#include <stdio.h> #include <stdlib.h> int main() { int m = 945; // 模数 int a = 2; // a值 int c = 1; // c值 int max_period = 0; // 最大周期 for (int i = 2; i < m; i++) { // 遍历a值 if (m % i == 0 && (i - 1) % 4 == 0) { // 判断是否满足条件3和4 a = i; break; } } for (int i = 1; i < m; i++) { // 遍历c值 if (m % i != 0) { // 判断是否满足条件2 c = i; break; } } int x = 1; // 初始值 int period = 0; // 周期 do { // 计算随机数序列的周期 x = (a * x + c) % m; period++; } while (x != 1); max_period = m - 1; // 最大周期为m-1 printf("a=%d, c=%d, max period=%d\n", a, c, max_period); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 可否在不同线程中调用封装数据库操作的类
- ¥20 使用Photon PUN2解决游戏得分同步的问题
- ¥15 微带串馈天线阵列每个阵元宽度计算
- ¥15 keil的map文件中Image component sizes各项意思
- ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
- ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
- ¥15 划分vlan后,链路不通了?
- ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
- ¥15 Vue3 大型图片数据拖动排序
- ¥15 Centos / PETGEM