• Как задать метод перебора всех возможных сочетаний элементов?

    @webymax Автор вопроса
    Как можно сгенерировать все возможные комбинации элементов в массиве?
  • Как задать метод перебора всех возможных сочетаний элементов?

    @webymax Автор вопроса
    10 объектов я больше привёл для ясности задачи и чтобы не распугать народ N-ными количествами )) Вообще, нужно универсальный алгоритм сделать. Но пока не могу догадаться, как делать перебор.

    Вы говорите "отсортировать по высоте" и вперёд, но как именно вперёд... На примере с 10 объектами можно было бы начать:

    $ideal_height = max(array_sum($arr) / 3, max($arr), min($arr));
    rsort($arr); // сначала высокие
    $heights = [0, 0, 0]; // высоты трёх групп
    $last = 0;
    for ($i = 0; $i < 3; $i ++) { // перебираем группы
        for ($j = $last; $j < 10; $j ++) { // перебираем цилиндры
            $last = $j; // последний перебранный цилиндр
            $heights[$i] += $arr[$j]; // увеличиваем высоту группы
            if ($heights[$i] >= $ideal_height) // достигли ИМВВ, идём в следующую группу
                break;
        }
    }
    // на выходе получаем массив высот трёх групп $heights
    $max_height = max($heights); // общая высота групп

    Это была только одна из возможных комбинаций. Как перейти к следующей комбинации цилиндров?
  • Как запретить прокрутку к результатам поиска яндекса на сайте?

    @webymax Автор вопроса
    Нет. В то место на странице, где должны быть результаты поиска, вставляется такой код:
    <div id="ya-site-results" onclick="return {'tld': 'ru','language': 'ru','encoding': '','htmlcss': '1.
    x','updatehash': true}"></div>
    <script type="text/javascript">(function(w,d,c){var s=d.createElement('script'),h=d.getElementsByTagName('script')[0];s.type='text/javascript';s.async=true;s.charset='utf-8';s.src=(d.location.protocol==='https:'?'https:':'http:')+'//site.yandex.net/v2.0/js/all.js';h.parentNode.insertBefore(s,h);(w[c]||(w[c]=[])).push(function(){Ya.Site.Results.init();})})(window,document,'yandex_site_callbacks');</script>