-1

У меня есть грубая сила, написанная до N=4, и мне интересно, можно ли это выразить в простой рекурсивной формуле.Этот шаблон сводится к простой формуле, возможно, рекурсивной?

f({A}) = 1 * (A) 
     = A 

f({A,B}) = 2 * (A + B) + 1 * (A) + 1 * (B) 
     = 3A + 3B 

f({A,B,C}) = 3*(A+B+C)+2*(A+B)+2*(B+C)+2*(A)+1*(B)+2*(C) 
      = 7A + 8B + 7C 

f({A,B,C,D}) = 4*(A+B+C+D)+3*(A+B+C)+3*(B+C+D)+4*(A+B)+2*(B+C)+4*(C+D)+4*(A)+2*(B)+2*(C)+4*(C) 
      = 15A + 18B + 18C + 15D 

Я на самом деле не уверен, является ли это более важно, чтобы смотреть на них сгруппированы по подразделам смежных исходного массива (как и в первой части каждого из моих равных выше) или отдельными номерами.

И я вижу, что если я группирую их по отдельным номерам, первый и последний 2^n - 1, где n - это размер массива.

+1

это не для меня ясно, что картина вы следуете. Для f ({A, B, C, D}), почему у вас нет слова для 3 * (A + B + D)? Вы исключаете условия, в которых вы «пропустили» письмо? – Carser

+0

@ Карсер Да, вот почему я сказал «смежные подразделы» –

+0

«Смежные подразделы» выше, но не ясно, что это было предназначено как часть вашего шаблона. В любом случае, вы умножаете каждый из этих подразделов на их длину, правильно? Я просто прошу разъяснений, поэтому мы можем избежать необходимости делать допущения. – Carser

ответ

1

Я думаю, что я начинаю видеть образец здесь, глядя на данные

F([A])  = A 
F([A,B])  = 3A + 3B 
F([A,B,C]) = 7A + 8B + 7C 
F([A,B,C,D]) = 15A + 18B + 18C + 15D 

группирования их общими факторами и выходящих за пределы статистов

F([A])  = A 
F([A,B])  = 3(A+B) 
F([A,B,C]) = 7(A + B + C) + B 
F([A,B,C,D]) = 15(A + B + C + D) + 3(B+C) 

них шаблон, возникающих является продолжением

F([]) = 0 
F(X) = (2^n-1)*sum(X) + F(center(X)) 

, где n имеет размер X, sum(X) суммирования по элементу в X и center(X) является функцией, которая уронить первый и последний элемент данного массива

с этим, то следующий один

F([A,B,C,D,E]) = 31(A+B+C+D+E) + F([B,C,D]) 
       = 31(A+B+C+D+E) + 7(B+C+D) + C 
       = 31A + 38B + 39C + 38D + 31E 
0

Глядя на рисунок, я придумать несколько иным решение у Копперфильда, который должен держать повторную центральную логику до тех пор, пока больше не центра, а не применять его только один раз:

F(x) = (2^n - 1) * sum(x) + F(center(x)) + F(center(center(x)) .... 

F({A}) = 1A 
F({A,B}) = 3A + 3B 
F({A,B,C}) = 7A + 8B + 7C 
F({A,B,C,D}) = 15A + 18B + 18C + 15D 
F({A,B,C,D,E}) = 31A + 38B + 40C + 38D + 31E 
F({A,B,C,D,E,F}) = 63A + 78B + 84C + 84D + 78E + 63F 

результаты не являются идентичными до F({A,B,C,D,E}) где термин C является одним большим, чем Копперфилд:

F({A,B,C,D,E}) = 31(A+B+C+D+E) + F({B,C,D}) + F({C}) 
       = 31(A+B+C+D+E) + 7(B+C+D) + C + C 
       = 31A + 38B + 40C + 38D + 31E 

и оттуда разница увеличивается. Либо интерпретация может быть сделана из предоставленных данных, а до OP, чтобы поставить следующий термин, чтобы увидеть, какое решение является правильным (или что оба они ошибаются.)

Наконец, последнее уравнение OP имеет то, что кажется ошибка в заключительный период:

f({A,B,C,D}) = 4*(A+B+C+D)+3*(A+B+C)+3*(B+C+D)+4*(A+B)+2*(B+C)+4*(C+D)+4*(A)+2*(B)+2*(C)+4*(C) 

, который, вероятно, должен быть:

f({A,B,C,D}) = 4*(A+B+C+D)+3*(A+B+C)+3*(B+C+D)+4*(A+B)+2*(B+C)+4*(C+D)+4*(A)+2*(B)+2*(C)+4*(D)