Python程序:检查序列是否能构成等差数列


假设我们有一个名为nums的数字列表。我们必须检查nums中存在的元素是否构成等差数列。众所周知,在等差数列中,任何两个连续元素之间的公差都是相同的。

因此,如果输入类似于nums = [9,1,17,5,13],则输出将为True,因为如果我们对它们进行排序,它将是[1,5,9,13,17],并且这里每对元素的公差都是4。

为了解决这个问题,我们将遵循以下步骤:

  • nums := 对列表nums进行排序

  • 如果nums中的元素个数 > 1,则

    • const := nums[1] - nums[0]

  • 否则,

    • 返回True

  • 对于i从0到nums的大小-1,执行以下操作:

    • 如果nums[i+1] - nums[i]与const不同,则

      • 返回False

  • 返回True

示例(Python)

让我们看看下面的实现来更好地理解:

 在线演示

def solve(nums):
   nums = sorted(nums)

   if len(nums) > 1:
      const = nums[1] - nums[0]
   else:
      return True
   for i in range(len(nums)-1):
      if nums[i+1] - nums[i] != const:
         return False
   return True

nums = [9,1,17,5,13]
print(solve(nums))

输入

[9,1,17,5,13]

Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.

输出

True

更新于:2021年5月17日

2K+ 次浏览

启动您的职业生涯

完成课程后获得认证

开始
广告