permute_sequence
переупорядочивает список значений так, чтобы сначала было среднее значение, затем средняя точка каждой половины, затем средние точки четырех оставшихся кварталов и т. Д. Итак, permute_sequence(range(1000))
начинается так:
[500, 250, 750, 125, 625, 375, ...]
calculate_jobs
попеременно заполняет строки и столбцы, используя последовательности одномерных координат, предоставленные permute_sequence
.
Если вы все равно собираетесь искать во всем 2D-пространстве, это не поможет вам быстрее закончить. Вы также можете просто отсканировать все точки по порядку. Но я думаю, что идея заключалась в том, чтобы найти приличное приближение минимума как можно раньше при поиске. Я подозреваю, что вы могли бы сделать то же самое, перетасовывая список случайным образом.
читатели xkcd заметят, что протокол писсуара даст только немного другие (и, вероятно, лучшие) результаты:
[0, 1000, 500, 250, 750, 125, 625, 375, ...]