java - 查找此函数的循环不变量
问题描述
我需要找到 gcd(euclid 算法)的循环不变量,但我不知道从哪里开始或看什么
int f(int x, int y) {
while (true) {
int m = x % y;
if(m == 0) return y;
x = y;
y = m;
}
}
解决方案
x 和 y 的最大公约数在整个循环中保持不变。因此,循环不变量是 gcd(x,y) = c 其中 c 是一个常数。
推荐阅读
- python - 将字典中的多个值(每个键)映射并附加到数据框的不同列
- java - Ant JUnit 任务因 ClosedByInterruptException 而失败
- python - 循环求和查找和多重
- android - Android MaterialButton 样式不变
- php - 如何从php数组中删除数组索引?
- sql-server - 有人可以解释通过 SSIS 和 VS 构建 ETL 时使用的“BypassPrepare”连接参数吗?
- netlogo - 只有观察者可以询问所有海龟 - NetLogo 错误
- sql - 五列到一行
- ios - 如何向 AWS Lambda 验证我的故障转储?
- python - Python - 如何在函数之间发送一次值