Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

파이썬에서 시퀀스에서 산술 진행을 할 수 있는지 확인하는 프로그램

<시간/>

nums라는 숫자 목록이 있다고 가정합니다. nums에 존재하는 요소가 AP 시리즈를 구성하고 있는지 확인해야 합니다. AP(Arithmetic Progression) 시리즈에서 알 수 있듯이 연속된 두 요소의 공통적인 차이는 동일합니다.

따라서 입력이 nums =[9,1,17,5,13]과 같으면 출력은 True가 됩니다. 정렬하면 [1,5,9,13,17]이고 여기서는 공통이기 때문입니다. 차이는 각 요소 쌍에 대해 4입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • nums :=목록 숫자 정렬

  • nums의 요소 수가 1보다 크면

    • 상수 :=숫자[1] - 숫자[0]

  • 그렇지 않으면

    • 참을 반환

  • 범위 0에서 숫자 -1 크기의 i에 대해 수행

    • nums[i+1] - nums[i]가 const와 같지 않으면

      • 거짓을 반환

  • 참을 반환

예제(파이썬)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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