algorithm - 在等差数列的 n 个元素的序列中,[n/2] 个元素发生变化。求初始等差级数的差

标签 algorithm puzzle

我有一个大小为 n 的列表,其中包含算术级数的 n 个连续成员,这些成员不按顺序排列。我用一些随机整数更改了此列表中不到一半的元素。从这个新列表中,我如何找到初始算术级数的差异?

我想了很多,但除了暴力之外,我想不出任何其他办法:(

感谢您考虑这个问题:)

最佳答案

一般来说,解决这个问题并不能 100% 确定您的答案是正确的。假设初始列表是以下算术级数(不按顺序排列):

1 3 2 4

随机更改不到一半的元素...例如,我们将 2 更改为 5:

1 3 5 4

如果我们能够首先找出需要更改哪些数字才能获得有效的打乱算术序列,那么我们就可以轻松解决问题中所述的问题。然而,我们可以看到有多种可能的答案,具体取决于我们选择更改的编号:

  • 6、3、5、4(相差 1)
  • 1、3、2、4(差值为 1)
  • 1、3、5、7(相差 2)

无法知道这些可能的序列中哪一个是原始序列,因此您无法确定原始差异是什么。

关于algorithm - 在等差数列的 n 个元素的序列中,[n/2] 个元素发生变化。求初始等差级数的差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4821851/

相关文章:

javascript - 将数组 block 分成组 - 我的代码有什么问题?

java - 仅使用一维数组顺时针遍历字符串

algorithm - 大哦,小哦和大θ关系

c - C 中的 hello world 没有分号且没有 IF/WHILE/FOR 语句

synchronization - 两将协议(protocol)

algorithm - 将一个整数划分为 9 个有限制的非负整数

c++ - Find() 函数的复杂度是多少

algorithm - 什么是 O(n*log m) + O(m)?

ruby-on-rails - 正则表达式:匹配包含数字和字母的字符串,而不是仅包含数字的字符串

c - Facebook拼图提交失败