我正在 Codeforces 上解决这个初学者问题,年轻的物理学家。 https://codeforces.com/problemset/problem/69/A
答案是找出 3 个力是否处于平衡状态。
我提交了两个版本的答案。一位通过了,一位没有。但我不明白为什么它不会通过,两个条件不是一样吗?
if (sumx == 0 && sumy == 0 && sumz == 0)
cout << "YES" << "\n";
else
cout << "NO" << "\n";
以上是通过的。
if (sumx + sumy + sumz == 0)
cout << "YES" << "\n";
else
cout << "NO" << "\n";
这是没有通过的。
最佳答案
考虑 sumx = -1
、sumy = 1
、sumz = 0
。 x + y + z = 0
存在二维无穷多个解,而 x = y = z = 0
只是一个 0 维奇点。
如果绘制x + y + z = 0
的图形,您会得到:
该平面上的每个点都是一组三个值,它们的总和为 0。这三个点都为零的点只是海上的一个点。快速检查一下,你会发现约束过于简化,因为你有 3 个变量,但只有 1 个方程。这意味着您仍应具有 3 - 1 = 2 维的自由度,但单个点具有 0 维的自由度。
关于c++ - 这两个条件不是一样的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61054042/