Причина, по которой я это делаю, состоит в том, чтобы найти ближайшее число, превышающее N, которое является общим кратным степеней простых чисел, чтобы иметь возможность использовать FFTW.
Насколько я понимаю, это проблема оптимизации/линейного программирования. И мне удалось сформулировать математически:
minimize(a log(2) + b log(3) + c log(5) + ...)
Constraints::
a log(2) + b log(3) + c log(5) + ..... >= log (N) (known parameter: N)
{a, b, c ...} >= 0 (i.e. are positive)
{a, b, c ...} % 1 == 0 (i.e. are integers)
где a, b, c — показатели степени и целые числа.
Я хотел бы реализовать то же самое численно. Предпочтительно использовать scipy.optimize
.
EDIT: я немного изменил уравнения на основе комментариев. Даже если реализации не существует, алгоритм был бы полезен.
>
в LP вообще нет (и описывать его нужно осторожно; если › это действительно то, что вы хотите; в отличие от>=
) и N нам неизвестно. Кроме того: что дало вам ваше исследование после прочтения того, что вы описали, является целочисленной программой? - person sascha   schedule 16.03.2018>=
на самом деле в порядке. N — известный параметр. Терминinteger programming
для меня новый, и в Википедии говорится, что он NP-полный. То есть точных алгоритмов нет, есть только приблизительные? - person jadelord   schedule 16.03.2018scipy.fftpack.next_fast_len
. - person Warren Weckesser   schedule 17.03.2018pyfftw.next_fast_len
реализация, но нам придется подождать до следующего релиза. . - person jadelord   schedule 17.03.2018