首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >算术交换的不同版本是什么?为什么它们可以工作?

算术交换的不同版本是什么?为什么它们可以工作?
EN

Stack Overflow用户
提问于 2020-01-06 09:56:04
回答 1查看 32关注 0票数 0

我想我们都应该熟悉算术交换算法,它交换两个变量而不使用第三个变量。现在我发现算术交换有两种变体。请考虑以下几点:

变体1。

代码语言:javascript
运行
复制
int a = 2;
int b = 3;
a = a + b;
b = a - b;
a = a - b;

变体2。

代码语言:javascript
运行
复制
int a = 2;
int b = 3;
b = b - a;
a = a + b;
b = a - b;

我想知道,为什么算术交换有两种不同的变体,为什么它们可以工作?是否还有其他算术互换的变体也能达到同样的结果?它们是如何相关的?对于所有的变体,有没有什么优雅的数学公式可以证明为什么算术交换是这样工作的?这两个算术掉期的这两个变体之间是否有什么关联,比如潜在的事实?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-06 10:08:52

将每个变量分解为它所表示的内容:

代码语言:javascript
运行
复制
a = 2
b = 3
a1 = a + b
b1 = a1 - b = (a + b) - b = a
a2 = a1 - b1 = (a + b) - a = b
代码语言:javascript
运行
复制
a = 2
b = 3
b1 = b - a
a1 = a + b1 = a + (b - a) = b
b2 = a1 - b1 = b - (b - a) = a

除了数学能解决的事实之外,没有其他潜在的事实。请记住,每次你做一个赋值,它实际上是一个新的“变量”从数学方面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59605851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档