파이썬에서 결과 숫자와 동일한 목록의 모든 수학적 조합을 얻는 방법

코더

배경

우리는 우리와 관련된 숫자 만 사용하여 해결할 수있는 코드로 나와 내 형제의 크리스마스 선물을 식별하는 가족 전통을 가지고 있습니다. 예를 들어, 코드는 birth month * age + graduation year(이것은 간단한 것입니다). 숫자가 8 * 22 + 2020 = 2196이면 모든 크리스마스 선물에 2196 이라는 숫자가 기록됩니다.

나는 모든 형제 자매와 관련된 모든 번호를 가진 목록을 만드는 Python 클래스를 이미 만들었습니다. 현재 목록은 30 개가 넘지 만 40 개 이상으로 늘어날 수 있습니다.

질문

결과 숫자와 동일한 숫자 목록의 모든 수학적 조합을 테스트하는 방법이 있습니까? 예를 들어, findPossibleCombinations( [8, 7, 4, 22, 2020, 573], 2196 )결과 번호를 생성 할 수있는 목록 목록을 반환합니까? 따라서이 함수는 [8, 22, 2020] 및 2196과 동일하게 사용될 수있는 기타 목록을 반환합니다. 숫자는 두 번 이상 사용되지 않습니다.

O (N ^ 47) 알고리즘 (물론 농담)이되는 방법이 있다고 확신하지만, 이런 종류의 결과를 달성하기 위해 가장 최적화 된 알고리즘이 무엇인지 궁금합니다.

계산 시간을 위해 작업 수를 총 5-6 개로 제한합니다. 우리 부모님은 미친 게 아니고 최종 결과를 계산하는 데 5-6 개 이상의 숫자를 사용하지 않을 것입니다. 또한 향후 몇 년 동안 다른 작업을 추가해야 할 수도 있지만 작업을 +,-, * 및 /로 제한합니다.

모든 도움에 감사드립니다! 나는 당신이 적어도 나의 이상한 가족 전통에서 웃기를 바랍니다.

편집 : 여기에 내 수업 구조가 있습니다. 훨씬 더 최적화 될 수 있지만 지금은 충분합니다. 모든 문자열은 영숫자 및 역 영숫자로 변환되고 문자로 추가됩니다. "listofnums"는 제가 사용하고 싶은 목록입니다.

def getalpha( str, inverse ):
   "Converts string to alphanumeric array of chars"
   array = []
   for i in range(0, len(str)): 
      alpha = ord(str[i]) - 96
      if inverse:
        array.append(27 - alpha)
      else:
        array.append(alpha)
   return array;

class Person:
  def __init__(self, name, middlename, birthmonth, birthday, birthyear, age, orderofbirth, gradyear, state, zip):
    #final list
    self.listofnums = []
    self.listofnums.extend((birthmonth, birthday, birthyear, birthyear - 1900, age, orderofbirth, gradyear, gradyear - 2000, zip))
    letters = name + middlename + state
    #add all related alphanumeric letters
    self.listofnums.extend(getalpha(letters, False))
    self.listofnums.extend(getalpha(letters, True))
이스마엘 엘 아 티피

itertools.product 가 필요합니다 . 주어진 시퀀스의 데카르트 곱의 모든 튜플을 생성하는 생성기를 제공합니다.

from itertools import product

values1 = range(3)     # replace with your candidate birth month values
values2 = range(3, 6)  # replace with your candidate age values
values3 = range(7, 9)  # replace with your candidate graduation year values 
target_values = {10, 20, 30}  # replace with your target values (results)
# target_values need to be a set for efficient lookup.
for val1, val2, val3 in product(values1, values2, values3):
    if val1 + val2 + val3 in target_values:  #replace with your function
        print(val1, val2, val3)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

파이썬의 다른 목록보다 작거나 동등한 목록에서 모든 값을 얻는 방법

분류에서Dev

파이썬에서 숫자와 함께 모든 대문자와 소문자 목록을 얻는 방법이 있습니까?

분류에서Dev

파이썬에서 2 개의 큰 목록의 가능한 모든 조합을 효율적으로 분석하는 방법은 무엇입니까?

분류에서Dev

숫자 목록에서 조합의 수학적 연산과 유사한 것

분류에서Dev

결과 표현식이 일부 숫자 B와 같도록 숫자 A에서 모든 연산자 조합 찾기

분류에서Dev

선택한 목록에서 모든 숫자의 합계를 찾는 방법

분류에서Dev

jinja 2 템플릿 파일의 모든 변수 목록을 얻는 방법

분류에서Dev

목록 목록 또는 여러 목록을 요소별로 결합 할 수있는 모든 방법은 무엇입니까? 동일한 색인을 가진 각 목록의 항목에 대해 작동합니까?

분류에서Dev

파이썬의 모든 조합 목록에서 색인의 요소 조합을 아는 방법

분류에서Dev

파일에서 모든 특수 문자를 찾아 파이썬 목록에 추가하는 방법

분류에서Dev

파일에서 모든 특수 문자를 찾아 파이썬 목록에 추가하는 방법

분류에서Dev

모든 학생이 50 점 이상을 차지하도록 모든 학생이 수강 한 모든 과목을 선택하는 방법

분류에서Dev

파이썬에서 정수 숫자의 단일 연결 목록을 만드는 가장 좋은 방법은 무엇입니까?

분류에서Dev

결과 / 오른쪽 내부에서 조건 / 왼쪽에 정의 된 모든 잠꼬대 변수 목록을 얻는 방법은 무엇입니까?

분류에서Dev

연결된 모든 이슈에서 유권자 목록을 얻는 방법

분류에서Dev

동일한 값의 모든 인스턴스에 대한 조건을 충족하는 경우에만 결과로 그룹을 얻는 방법

분류에서Dev

특정 문자열과 관련된 숫자를 제외한 목록에서 모든 숫자 값을 얻는 방법

분류에서Dev

linq 목록에서 두 숫자 사이의 모든 일치 항목을 찾는 방법

분류에서Dev

문자 목록에서 모든 하위 문자열을 얻는 방법 (파이썬)

분류에서Dev

Prestashop에서 모든 첨부 파일 목록을 얻는 방법

분류에서Dev

python-chess 모듈의 모든 법적 이동 목록을 얻는 방법은 무엇입니까?

분류에서Dev

서로 인접한 두 요소가 하나의 요소가 될 수있는 목록의 모든 조합을 얻는 방법

분류에서Dev

가능한 모든 조합으로 사전의 목록에있는 문자열을 바꾸는 방법

분류에서Dev

동일한 결과를 얻기 위해 목록과 요소 모두에서 동일한 슬라이스 표기법을 사용할 수 있습니까?

분류에서Dev

헤더 파일을 분석하고 모든 #defines의 결과 목록을 얻는 쉬운 방법이 있습니까?

분류에서Dev

가능한 모든 짝수 또는 홀수 조합을 찾고 결과에 대한 수학적 연산을 수행합니다.

분류에서Dev

C ++에서 부모 문자열과 동일한 순서로 문자열의 문자 집합을 얻는 방법

분류에서Dev

문자열이 목록 항목의 일부일 때 목록 내에서 모든 문자열을 찾는 방법

분류에서Dev

정수 목록과 x라는 숫자가 주어지면 목록에있는 모든 x 번째 숫자의 합을 재귀 적으로 반환하는 방법

Related 관련 기사

  1. 1

    파이썬의 다른 목록보다 작거나 동등한 목록에서 모든 값을 얻는 방법

  2. 2

    파이썬에서 숫자와 함께 모든 대문자와 소문자 목록을 얻는 방법이 있습니까?

  3. 3

    파이썬에서 2 개의 큰 목록의 가능한 모든 조합을 효율적으로 분석하는 방법은 무엇입니까?

  4. 4

    숫자 목록에서 조합의 수학적 연산과 유사한 것

  5. 5

    결과 표현식이 일부 숫자 B와 같도록 숫자 A에서 모든 연산자 조합 찾기

  6. 6

    선택한 목록에서 모든 숫자의 합계를 찾는 방법

  7. 7

    jinja 2 템플릿 파일의 모든 변수 목록을 얻는 방법

  8. 8

    목록 목록 또는 여러 목록을 요소별로 결합 할 수있는 모든 방법은 무엇입니까? 동일한 색인을 가진 각 목록의 항목에 대해 작동합니까?

  9. 9

    파이썬의 모든 조합 목록에서 색인의 요소 조합을 아는 방법

  10. 10

    파일에서 모든 특수 문자를 찾아 파이썬 목록에 추가하는 방법

  11. 11

    파일에서 모든 특수 문자를 찾아 파이썬 목록에 추가하는 방법

  12. 12

    모든 학생이 50 점 이상을 차지하도록 모든 학생이 수강 한 모든 과목을 선택하는 방법

  13. 13

    파이썬에서 정수 숫자의 단일 연결 목록을 만드는 가장 좋은 방법은 무엇입니까?

  14. 14

    결과 / 오른쪽 내부에서 조건 / 왼쪽에 정의 된 모든 잠꼬대 변수 목록을 얻는 방법은 무엇입니까?

  15. 15

    연결된 모든 이슈에서 유권자 목록을 얻는 방법

  16. 16

    동일한 값의 모든 인스턴스에 대한 조건을 충족하는 경우에만 결과로 그룹을 얻는 방법

  17. 17

    특정 문자열과 관련된 숫자를 제외한 목록에서 모든 숫자 값을 얻는 방법

  18. 18

    linq 목록에서 두 숫자 사이의 모든 일치 항목을 찾는 방법

  19. 19

    문자 목록에서 모든 하위 문자열을 얻는 방법 (파이썬)

  20. 20

    Prestashop에서 모든 첨부 파일 목록을 얻는 방법

  21. 21

    python-chess 모듈의 모든 법적 이동 목록을 얻는 방법은 무엇입니까?

  22. 22

    서로 인접한 두 요소가 하나의 요소가 될 수있는 목록의 모든 조합을 얻는 방법

  23. 23

    가능한 모든 조합으로 사전의 목록에있는 문자열을 바꾸는 방법

  24. 24

    동일한 결과를 얻기 위해 목록과 요소 모두에서 동일한 슬라이스 표기법을 사용할 수 있습니까?

  25. 25

    헤더 파일을 분석하고 모든 #defines의 결과 목록을 얻는 쉬운 방법이 있습니까?

  26. 26

    가능한 모든 짝수 또는 홀수 조합을 찾고 결과에 대한 수학적 연산을 수행합니다.

  27. 27

    C ++에서 부모 문자열과 동일한 순서로 문자열의 문자 집합을 얻는 방법

  28. 28

    문자열이 목록 항목의 일부일 때 목록 내에서 모든 문자열을 찾는 방법

  29. 29

    정수 목록과 x라는 숫자가 주어지면 목록에있는 모든 x 번째 숫자의 합을 재귀 적으로 반환하는 방법

뜨겁다태그

보관