在 Python 中检查我们是否可以从序列中创建等差数列的程序
假设我们有一个名为 nums 的数字列表。我们必须检查 nums 中的元素是否形成 AP(等差数列)序列。我们知道,在 AP 序列中,任何两个相邻元素之间的公差都相同。
因此,如果输入是 nums = [9,1,17,5,13],那么输出将为 True,因为如果我们对它们进行排序,它将变为 [1,5,9,13,17] 并且这里每一对元素的公差都为 4。
要解决这个问题,我们要遵循以下步骤−
- nums := 对列表 nums 进行排序
-
如果 nums 中的元素数 > 1,则
- const := nums[1] – nums[0]
- 否则,
- 返回 True
- 对于 i 在 range 0 到 nums 大小 -1 中,执行以下操作 −
- 如果 nums[i+1] – nums[i] 不等于 const,则
- 返回 False
- 如果 nums[i+1] – nums[i] 不等于 const,则
- 返回 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]
输出
True