처음으로 포스터 사이트에 있습니다. 내 질문은 다음과 같은 일반적인 수학 원리는 무엇인가?수렴 루프 인덱스 뒤에 수학 원리?
예를 들어. [3, 3, 3, 3, 4, 6, 3, 4, 4, 5] 및 모두가 제 1 벡터보다 작은 값에서 시작하는 루프 인덱스를 나타내는 다른 벡터. [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]. 각 루프 인덱스가 첫 번째 벡터의 해당 인덱스와 같을 때이를 1로 재설정하십시오. 모든 지수가 1 일 때 프로그램이 끝납니다.
이것은 정수 분해와 같지만 일반적으로이를 어떻게 표현해야할지 모르겠습니다. 어떤 원칙이 여기에서 일하고 있습니까? 똑같은 결과를 얻기 위해서 계산 상으로 효율적인 방법은 무엇입니까?
미리 감사드립니다.
import numpy as np
unityVec = np.ones((10), dtype=np.int) # create a vector of ones
counter = 1 # initialize counter
counterVec = np.ones((10), dtype=np.int) # initialize counter array
counterVec = counterVec + 1 # make counter array > ones array
littleVec = ([3, 3, 3, 3, 4, 6, 3, 4, 4, 5]) # loop reset values
while not (np.array_equal(unityVec, counterVec)): # compare counter to ones vector
counterVec = counterVec + 1
for i in range(10):
if counterVec[i] == littleVec[i]:
counterVec[i] = 1 # reset counterVec element to 1 once it hits limit
#print("Counter: ", counter, "\tIndex: ", i, "\tcounterVec: ", counterVec, "\tlittleVec: ", littleVec)
counter = counter + 1
print("Indices converged after", counter-1, "iterations!")
예상 결과 : 제 1 벡터의 값의 곱보다 작거나 같은 양의 정수 값.
실험 결과 : 주어진 샘플 값을 사용하여, 인덱스는 59 루프 후에 수렴한다.
59가 littleVec의 최소 공배수보다 1 작은 것을 관찰하십시오. –
이것은 https : //math.stackexchange에 더 적합합니다.com이지만 원래 배열에있는 모든 정수 중에서 최소한의 공배수입니다. –
폴과 알렉산더에게 간결한 답장을 보내 주셔서 감사합니다. –