UVA408-水的深度的伪随机数
题意:
公式sed(x) = (sed(x-1)+step)%mod,初始值sed(x)=0,输入step和mod,求解这个公式能不能生成0,1,2,3,4,5.....mod-1
解法:暴力枚举,直到出现循环
数学证明:
假设step,和mod的最大公约数是m
设step=km,mod=nm,(step<mod)
第一次,(0+km)%nm
sed(1)=km
sed(2)=(sed(1)+step)%nm=(km+km)%nm=2km%nm=2km
.........
sed(x)=(sed(x-1)+step)%nm=xkm%nm
如果xkm=nm,sed(x)=0,出现循环,出现的值都是,0,step,1step,2step,3step.....0,1step......,全是step的倍数,此时,如果step!=1,那么公式不能生成所有的数,如果step=1,那么就能生成所有的数,
此时,step和mod 的最大公约数是 1,等于step
如果xkm>nm
sed(x)=xkm%nm,因为xkm>nm,所以,xk>n,所以xk中肯定可以找出一个n,所以sed(x)=xkm%nm=(xk-n)m
sed(x+1)=(sed(x)+step)=((xk-n)m+km)%nm=(xkm-nm+km)%nm=(xkm%nm+km%nm)%nm=((x+1)km)%nm=((x+1)k-n)m
...........
都是m的整数倍.
求最大公约数,0ms
#include<iostream>
#include <stdio.h>
#include <memory.h>
using namespace std; int gcd(int a,int b)
{
return b?gcd(b,a%b):a;
}
int main()
{ int step, mod;
while (cin >> step >> mod)
{ printf("%10d%10d", step, mod);
if(gcd(step,mod)==1)
{
printf(" Good Choice\n");
}
else
{
printf(" Bad Choice\n");
}
printf("\n");
} return 0;
}
暴力枚举,40ms
#include<iostream>
#include <stdio.h>
#include <memory.h>
using namespace std; int main()
{ int step, mod;
while (cin >> step >> mod)
{
int* used = new int[mod];
memset(used, 0, sizeof(int)*mod);
int sed = 0;
while (used[sed] != 1)
{
used[sed] = 1;
sed = (sed + step) % mod;
}
int n = 1;
for(int i = 0; i < mod; i++)
{
if(used[i] == 0)
{
n = 0;
break;
}
}
printf("%10d%10d", step, mod);
if(n)
{
printf(" Good Choice\n");
}
else
{
printf(" Bad Choice\n");
}
printf("\n");
} return 0;
}
UVA408-水的深度的伪随机数的更多相关文章
- canvas实现水波纹效果
本文将会从水波的基本原理开始,详细讲解在canvas中模拟水波扩散,分析并计算水波的能量分布,并通过振幅模拟水波对图像的折射效果,最后实现水波特效. 水波基本原理 首先复习一波高中物理知识. 波是指振 ...
- 陕西中际现代:基于自适应算法的PLC滴灌控制系统
基于自适应算法的PLC滴灌控制系统 陕西中际现代包装科技有限公司滴灌部 1.介绍 水资源正在成为一种珍贵的资源.城镇的市民使用成千上万立方的水来浇灌花园和绿地.他们依赖于使用固定灌溉计划的控制器.而这 ...
- iOS CAShapeLayer、CADisplayLink 实现波浪动画效果
iOS CAShapeLayer.CADisplayLink 实现波浪动画效果 效果图 代码已上传 GitHub:https://github.com/Silence-GitHub/CoreAnima ...
- 初始jvm(一)---jvm内存区域与溢出
jvm内存区域与溢出 为什么学习jvm 木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时候,那么就需要你对jvm的了解掌握. 当一个系统出现内存溢出,内存泄露的时候,因为你懂jv ...
- jvm系列 (一) ---jvm内存区域与溢出
jvm内存区域与溢出 目录 jvm系列(一):jvm内存区域与溢出 jvm系列(二):垃圾收集器与内存分配策略 为什么学习jvm 木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时 ...
- 0UE3 材质概要
材质概要 概述 参数 当创建材质时如何考虑颜色 材质表达式 Abs(求绝对值) 添加 AntialiasedTextureMask AppendVector(向量合并) BumpOffset(凸凹偏移 ...
- Deferred Shading,延迟渲染(提高渲染效率,减少多余光照计算)【转】
Deferred Shading,看过<Gems2> 的应该都了解了.最近很火的星际2就是使用了Deferred Shading. 原帖位置: http://blog.csdn.net ...
- tabhost实现android菜单切换
做APP项目已经有半个月了.慢慢地熟悉了这个开发环境和开发套路. 虽然是摸着石头过河.但也渐渐看到了水的深度! 作为一个电商项目APP,势必会涉及究竟部菜单条的功能.自己实现这个功能的过程是崎岖的,最 ...
- Unity Water Shader
上图是一个物体浸入水中的效果 原理 我们使用相机渲染的整个场景的深度图减去需要忽略的模型的深度,这里忽略的是图中蓝色部分,就保留了其他的深度值. 用到Main Camera渲染的深度贴图: sampl ...
随机推荐
- cocoapods 安装过程及常见问题
1.可以参考这个网页的教程:http://code4app.com/article/cocoapods-install-usage 2.按照以下步骤进行安装: 1.配置rugy静态环境 gem sou ...
- with() {} 的用法
var use = "other"; var katana = { isSharp: true, use: function(){ this.isSharp = !!this.is ...
- C# [ModelName]标记 模型,类名称重复。
前几天遇到一个不算bug的bug 记录分享一下 出错情况 webapi 程序会自带一个模板 如图 点某一个接口进去后 出错原因 model实体中出现了名称一样的(并不会影响程 ...
- 推荐10款优秀的JavaScript Web UI库 框架和套件
在进行Web开发时,并非所有的库都适合你的项目,但真正开发的时候,你任然需要依赖一款UI框架.特别在你时间紧迫的时候,它是你忠实的朋友. 他们都是些广泛使用包含不同语言实现的WEB UI框架.今天我就 ...
- yarn 制作 npm 包
yarn publish yarn info [package_name]
- Qt treewidget样式的自定义(转)
这个treewidget样式真是写得让人心碎,主因是那个天杀的表头,真是块古里古怪的硬骨头,令人抓狂,一直找不到给表头设定背景图的方法,让我一度决定弃用tree. 后来表头的属性找到了,下拉条又找不到 ...
- css 填坑常用代码分享[居家实用型]
原文地址 http://www.cnblogs.com/jikey/p/4233003.html 以下是常用的代码收集,没有任何技术含量,只是填坑的积累.转载请注明出处,谢谢. 一. css 2.x ...
- chrome和Firefox对p标签中单词换行的渲染(强制换行)
谷歌和火狐对p标签单词的渲染: 今天在p标签展示url链接中,由于有几个下划线拼接的单词特别长, 所以总有那么几行老是超出p标签的范围,然后设置了强制 换行,才得以解决. word-wrap : br ...
- spring Annotation based configuration
spring 注解相关 https://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s11.html
- jenkins的war包下载地址
https://jenkins.io/doc/book/installing/