Разница между убийством -28 и апачем изящной остановки

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

Первое число должно быть выбрано так, чтобы возвращаемое значение func4 также равно нулю ( см. 0x08048d23). Если вы посмотрите в func4, вы увидите, что это двоичный поиск ( пояснения для аналогичного кода здесь). Когда элемент найден, он возвращает ноль. В противном случае, если он попадает в нижнюю половину, он возвращает 2*func4(). Наконец, если он находится в верхней половине, он возвращает 2*func4()+1.

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

Для полноты, это пошаговое руководство для других возможностей. Первая догадка будет средней точкой в ​​диапазоне [0, 14], которая равна 7. Для следующего шага мы знаем, что число должно быть меньше 7, чтобы получить диапазон [0, 6], а это означает середину 3. Аналогично, следующий диапазон - [0, 2] с серединой 1. Наконец, мы приходим к [0, 0], тривиальному результату.

TL; DR: Возможными входами являются 0 0, 1 0, 3 0 и 7 0.


Так как есть версии этого с другими ожидаемыми результатами, вот еще одна дополнительная помощь: Возвращаемое значение на самом деле говорит о низкоуровневых вариантах в двоичном формате, начиная с младшего значащего бита. В приведенном выше примере у нас были все 0 биты, поэтому все низкие варианты. Предположим, что мы имеем результат 4, который является 100 в двоичном. Чтение справа означает, что нам нужна нижняя, другая нижняя и конечная верхняя рекурсия. Следуя через диапазоны, они отображаются в [0, 6], [0, 2] и [2, 2]. Таким образом, в этом случае 2 будет решением.

0
задан Ryan-Neal Mes 15 January 2019 в 23:11
поделиться

1 ответ

После тестирования я могу подтвердить, что команды to приводят к одинаковому результату. Они оба приводят к изящному перезапуску.

0
ответ дан Ryan-Neal Mes 15 January 2019 в 23:11
поделиться
Другие вопросы по тегам:

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