Алгоритм организации матрицы так, чтобы соседи были ближайшими

В случае, если кто-то ищет решение на React JS SPA с Laravel. Принятый ответ - лучшее объяснение того, почему такие проблемы происходят. Как уже объяснялось, вам необходимо настроить как клиентскую, так и серверную сторону. В своем шаблоне лезвия включите файл js в комплекте, обязательно используйте URL facade, как это

<script src="{{ URL::to('js/user/spa.js') }}"></script>

. На ваших маршрутах обязательно добавьте это в основную конечную точку, где находится шаблон клинка. Например,

Route::get('/setting-alerts', function () {
   return view('user.set-alerts');
});

Вышеупомянутая основная точка для шаблона клинка. Теперь добавьте необязательный маршрут,

Route::get('/setting-alerts/{spa?}', function () {
  return view('user.set-alerts');
});

Проблема заключается в том, что сначала загружается шаблон лезвия, а затем реагирует маршрутизатор. Итак, когда вы загружаете '/setting-alerts', он загружает html и js. Но когда вы загружаете '/setting-alerts/about', он сначала загружается со стороны сервера. Поскольку на стороне сервера в этом месте ничего нет, он не возвращается. Когда у вас есть этот дополнительный маршрутизатор, он загружает ту же страницу и также загружает маршрутизатор, а затем реагирует загрузчик, решает, какой компонент будет отображаться. Надеюсь, это поможет.

1
задан Pierre Girardeau 16 January 2019 в 13:51
поделиться

2 ответа

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

enter image description here

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

0
ответ дан Erwin Kalvelagen 16 January 2019 в 13:51
поделиться

Это на самом деле более простая проблема. Ударь его своей алгеброй начальной школы. Во-первых, небольшое понимание покажет, что вы всегда хотите, чтобы числа сортировались при переходе сверху вниз слева направо. Подойдёт либо восходящий, либо нисходящий; они изоморфны. Давайте предположим, что по возрастанию, чтобы соответствовать вашим примерам. Для набора из 9 чисел:

i1 i2 i3
i4 i5 i6
i7 i8 i9

Нам нужно сложить слагаемые

// ROWS
i2-i1 + i3-i2 +
i5-i4 + i6-i5 +
i8-i7 + i9-i8 +
// COLUMNS
i4-i1 + i7-i4 +
i5-i2 + i8-i5 +
i6-i3 + i9-i6

Это сводится к i3-i1 + i6-i4 + i9-i7 + i7-i1 + i8-i2 + i9-i3

И это становится 2 * i9 - 2 * i1 + i6 + i8 - (i2 + i4)

Начните с сортировки своих N чисел и поиска смежная подпоследовательность чисел A * B с наименьшей разницей между самой низкой и самой высокой. Затем расположите номера неугловой границы так, чтобы разница (верхняя + левая) - (нижняя + правая) была минимальной, учитывая, сколько чисел может быть между каждой парой. Наконец, заполните любым доступным способом.

Очень просто, это сводится к суммам верхнего и левого ребер, минус нижний и правый ребра. Основные углы считаются двойными; выпадают верхний правый и нижний левый углы, а также все внутренние термины.

Да, я пропустил несколько логических шагов ... Я надеюсь, что этого достаточно для вас. Он сокращает пространство поиска с A*B чисел, взятых из N, до двух смежных последовательностей чисел A+B-2 в этой последовательности из A*B.

0
ответ дан Prune 16 January 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: