Как стать автором
Обновить
4
0

Пользователь

Отправить сообщение
Потому что Array.indexOf работает за O(n), в итоге весь ваш алгоритм работает за O(n^2), вы просто переложили половину работы по перебору влоб на плечи реализации метода indexOf.
Несмотря на перевод и автора, до самого последнего абзаца ждал джинсу на тему облачного хранения данных и, не найдя, даже как-то неожиданно для самого себя расстроился.

На самом деле, в наш век интернета вещей, предвестника интернета всего, само понятие хранения данных в привязке к какому-либо конкретному физическому или логическому хранилищу размывается. Все движется к тому, что абстрактное понятие инфосфера в не столь отдаленном будущем обретет вполне себе физическое воплощение в виде глобального «бульона» из средств хранения, передачи и обработки данных, в котором все сложнее и сложнее будет обособить каждую из составляющих. Здесь можно провести параллель с человеческим мозгом, как примером локальной реализации подобной структуры.
На самом деле, есть решение для неупорядоченного массива через черпачную сортировку, о которой, крайне незаслуженно, многие забывают, которое работает за O(n) и требует O(n) памяти и читает память практически линейно на больших массивах, пишет не совсем линейно, но в крайне ограниченное число адресов (в примере ниже — 256), т.е. почти все записи попадают в кэш.
Единственное ограничение, которое он накладывает — значения массива должны быть ограничены сверху некоторой константой. При этом алгоритм по сложности очень толерантен к данной константе.
Вот пример для массива с long значениями
// assumption: 0 <= array values < 2^63 (8 bytes signed)
// complexity: O(n)
// memory: O(n)
    
function solve(arr, target) {

    // magic is here
    bucketSort(arr);

    // classic O(n) solution for sorted array
    var i = 0;
    var j = arr.length - 1;
    var sum;
    while (i < j) {
        const sum = arr[i] + arr[j];
        if (sum < target) {
            i++;
        } else if (target < sum) {
            j--;
        } else {
            return true;
        }
    }
    return false;
    
}
    
// bucket sort has complexity O(n) and memory consumption O(n) for array of values less than constant
function bucketSort(arr) {
  var buckets, i, j, byteShift, bucketId, pos;
  
  // create empty buckets
  buckets = []; // will consume no more than O(n) memory
  for (i = 0; i < 256; i++) {
    buckets[i] = [];
  }
  
  // sort
  for (byteShift = 0; byteShift < 8; byteShift++) {
    
    // init buckets
    for (i = 0; i < 256; i++) {
      buckets[i].length = 0; // lets reuse memory
    }
    
    // split array to buckets
    for (i = 0; i < arr.length; i++) {
      bucketId = (arr[i] >>> (byteShift * 8)) & 255;
      buckets[bucketId].push(arr[i]);
    }
    
    // merge buckets to array
    pos = 0;
    for (i = 0; i < 256; i++) {
      for (j = 0; j < buckets[i].length; j++) {
        arr[pos] = buckets[i][j];
        pos++;
      }
    }
    
  }
  
}

Дело в том, что свободное падение в гравитационном поле, это не совсем ускорение. По ОТО вы не ускоряетесь, а движетесь по геодезической, т.е. равномерно прямолинейно, но в искревленном пространстве-времени. А разорвет вас из-за того, что геодезические, по которым движутся ваши ноги и голова, в этом самом пространстве-времени расходятся, и как раз вторая производная от функции расстояния между геодезическими в трех пространственных измерениях по функции расстояния между ними же во времени и будет тем самым «ускорением», которое вас разорвет. Причем рассчет влоб даст лишь приблизительную оценку, т.к. модуль Юнга тоже будет зависеть от постоянно изменяющегося градиента координат точек вашего тела по оси времени.

Как результат, точный рассчет момента разрыва можно давать как очень годную тему курсовой работы студентам физ. факультета.
А еще недавно в Минске на проспекте Держинского светящийся появился.
Фото
image
image
Вопрос не в возможно/невозможно, а в вероятности. И вероятность существования жизни не на углеродной основе намного меньше вероятности существования углеродной по двум объективным взаимосвязанным причинам:
1. Химия — как уже пояснил комментатор выше, углерод является одним из элементов, образующих наибольшее количество сложных химических соединений. Мы, конечно, можем искать жизнь, скажем, на основе аргона, вот только химия нам очень толсто намекает, что затея это бесперспективная.
2. Физика и космология — из всех веществ, образующих большое количество сложных соединений, углерод наиболее распространен во Вселенной.

Т.е. шовинизм здесь не идеологический от близорукости и тяги к привычному, а объективно научно обоснованный. Вот и ищем наиболее вероятно существующие формы жизни. Когда найдем и начнем находить пачками, можно будет и экзотику поискать.
Приведу выжимку контраргументов к позиции, подобной вашей, возникающих в комментариях ко всем статьям про вакцинацию:
1. Для подавляющего числа заболеваний вакцинация не гарантирует полного иммунитета, а лишь существенно повышает сопротивляемость.
2. Есть люди, вакцинация которых невозможна по причине медицинских противопоказаний.

Таким образом, вакцинация хорошо работает только путём повышения коллективного иммунитета и только при условии участия в ней подавляющего большинства.
> Встал с утра. Зарядил телефон, чашку, сердце, руку, повербанков, куртку, велосипед скейт и машину, кросовки, рюкзак, и поехал на работу.

И лег спать, заполночь же. К утру как раз разрядятся.
Не все так просто, как вы пишете. Как минимум в Беларуси есть строгие правила по противодействию фроду. Пишу, зная подноготную, работал несколько лет в IT отделе одного из мобильных операторов. Если на один паспорт регистрируется 3 симки, то вы уже под подозрением на фрод, если 5, то в вашу сторону начинается чёс покруче, чем проверка кредитной истории в банке.
> К сожалению этот вариант рано или поздно заканчивается.

Хабр читают не только россияне. У нас в Беларуси этот вариант не заканчивается. 13 лет на одном номере сижу, за все время количество спаммных звонков могу пересчитать на пальцах одной руки. У всех знакомых аналогично.
И все же, под взятием K случайных элементов из множества X обычно подразумевается, что если мы возьмем множество всех подмножеств мощности K множества X, то функция вероятности того, что какое-либо из данных подмножеств будет результатом выборки, должна иметь равномерное распределение.
И Akon32 вполне обоснованно показывает, что описанный алгоритм не обеспечивает данной равномерности, т.к. на модельном множестве некоторые из подмножеств элементов (вне зависимости от их значения) мощности K имеют нулевую вероятность оказаться результатом работы алгоритма. Например (при нумерации с 0 и K = 2), вероятность одновременного попадания в результат элементов с номерами 0 и 2 равна нулю.

Цитата из ветки выше:
> Автор говорит убедительно, но есть один хитрый момент: он утверждает, что random() % N даёт равномерное распределение от 0 до N, а значит нам достаточно его одного и для решения, брать ли элемент и для определения его позиции.

Автор очень лихо оставляет незамеченным тот факт, что вид распределения абсолютно ничего не говорит о взаимной независимости случайных величин. А они у него получаются зависимыми, более того, f1(x) = f2(x).
Как уже верно отметили выше, даже если идеально сфокусировать, то в лучшем случае вы получите изображение солнца, спроецированное на землю, исходя из углового размера в 0.53 градуса для орбиты в 500 км это изображение размером ~4.6 километра в диаметре. Т.е. если ваше зеркало меньше 4.6 км в диаметре, то яркость изображения будет меньше, чем у прямо падающих солнечных лучей ясным днем.
Вот интересно, насколько дороги драйвера для ШИМ.
Ведь в подсветке панели установлен далеко не 1 светодиод, и если поставить не 1 драйвер, а несколько, вплоть до 1го драйвера на диод, то можно организовать смещение фаз меандра и в итоге получить эквивалент бегущей волны и даже лучше, т.к. рассеиватель будет сглаживать перепады яркости в пространстве, сильно уменьшив перепады яркости по времени.
Вы меня не поняли. Он имеет больший объем именно в жидкой фазе. Т.е. порвать кружку может как раз в самый неудачный момент, когда вы только залили кипятка.
Так идея не только в том, чтобы быстро остудить до 60, но и в том, чтобы это тепло аккумулировать и использовать потом для поддержания 60.
Парафин при плавлении теряет 10-15% в плотности. Как боролись с распуханием? Будет весьма неприятно, если на руки польется через трещину.
Технологиями они отличаются сугубо по способу разделения изображения для каждого из глаз, что в контексте обсуждаемого вопроса значения не имеет.
Так что — можно.
И все же он «крайне желателен», так как у большинства людей наибольший вклад в восприятие объема вносит именно параллакс бинокулярного зрения. Без второго глаза ощущение объема будет, но уже совсем не то, далеко не в том качестве и только при движении.

Чтобы понять, о чем речь, в следующий раз при посещении 3d киносеанса попробуйте сравнить восприятие картинки при двух открытых глазах и при одном закрытом.
Мозг использует для построения объема не только параллакс бинокулярного зрения, но и параллакс движения (когда зритель движется относительно двух разноудаленных неподвижных объектов, то более дальний объект будет смещаться в поле зрения медленнее ближнего и наоборот). А так же напряжение мышц фокусировки хрусталика и опыт перспективы. Голограммы, о которых идет речь в статье, кстати, накрывают все эти оптические источники информации.

Если же минимизировать их все, то объем вы действительно ощущать перестанете. Возьмите лист бумаги, сделайте в нем прямоугольную прорезь в центре, затем натяните за прорезью две нити на разном удалении от листа (скажем, 2 и 3 см) так, чтобы точки крепления нитей были скрыты за листом, затем отойдите от листа на метр и, не двигаясь, посмотрите через прорезь на нити сначала с двумя открытыми глазами, потом с одним. В первом случае вы легко определите ближнюю нить. Во втором — с очень большим трудом, если вообще сможете.
А вот сейчас обидно было.

Информация

В рейтинге
Не участвует
Откуда
Минск, Минская обл., Беларусь
Дата рождения
Зарегистрирован
Активность