UVA 350 - Pseudo-Random Numbers
2017-09-06 15:05
357 查看
题目大意:输入Z, I, M, L,根据题目给的伪随机数公式,先输入的L作为第一次的随机数, (Z × L + I) % M 作为下一次的随机数L,求伪随机数的周期,即碰到重复的随机数。
解题思路:直接循环内计算,第一个随机数L不一定在伪随机数的周期内。所以一个标记数组,既是记录是否出现过,也是记录出现在第几次。
ac代码:
解题思路:直接循环内计算,第一个随机数L不一定在伪随机数的周期内。所以一个标记数组,既是记录是否出现过,也是记录出现在第几次。
ac代码:
#include <iostream> #include <cstring> using namespace std; int Z, I, M, L, sum, cnt=1, count, used[10005]; int main() { while (scanf("%d%d%d%d", &Z, &I, &M, &L)!=EOF){ if (!Z && !I && !M && !L) break; count = 0; memset(used, 0, sizeof(used)); while (!used[L]){ used[L] = count + 1; sum = (Z * L + I); L = sum % M; count++; } printf("Case %d: %d\n", cnt++, count-used[L]+1); } return 0; }
相关文章推荐
- UVa 350 - Pseudo-Random Numbers
- uva 350 Pseudo-Random Numbers(模拟)
- UVa 350 - Pseudo-Random Numbers
- UVA - 350 Pseudo-Random Numbers
- UVa 350 - Pseudo-Random Numbers
- Uva - 350 Pseudo-Random Numbers
- UVa 350 - Pseudo-Random Numbers
- UVA 350 Pseudo-Random Numbers
- UVa 350 - Pseudo-Random Numbers
- UVA 350-Pseudo-Random Numbers
- UVA350 Pseudo-Random Numbers
- UVa 350: Pseudo-Random Numbers
- UVA350 Pseudo-Random Numbers
- uva 350 Pseudo-Random Numbers
- UVa 350 Pseudo-Random Numbers (伪随机数的循环长度)
- UVA 350 (暑假-数论 -E - Pseudo-Random Numbers)
- Uva-350 Pseudo-Random Numbers
- UVA 350 - Pseudo-Random Numbers(水)
- Uva 350 - Pseudo-Random Numbers
- UVA 350 Pseudo-Random Numbers 伪随机数(简单)