Вопрос 1 – в следующем двойном вложенном цикле каким будет финальное значение в m
, если цикл выполняется для n
. Конечно, нежелательно делать цикл и смотреть, что такое m
! Так как n
может быть очень большим!
m = 0 for i = 1 to n-2 for j = i+1,n-1 for k = j+1,n m += 1
Вопрос 2. Как вы нашли ответ? Я имею в виду, какой алгоритм/метод вы использовали для решения проблемы?
Вопрос 3. Что вы порекомендуете для решения подобных проблем?
Вот ответ, который я искал:
Ответ:
def ntn(n,k): """returns the number of iterations for k nested dependent loops(n)""" return long(np.prod(n-np.arange(k,dtype=float)) / np.prod(np.arange(k,dtype=float)+1))
пример:
>>> ntn(1000,4) 41417124750L >>> ntn(1e20,3) 166666666666666650797607483335462097315368077619447843520512L
sum(1 ≤ i ≤ n-2) sum(i+1 ≤ j ≤ n-1) sum(j+1 ≤ k ≤ n) 1
. Следующий шаг — обратиться к вашему любимому учебнику по дискретной математике. Первая рекомендация для решения подобных задач — прийти на прием к профессору. - person Raymond Chen   schedule 31.10.2011