Nano Hash - криптовалюты, майнинг, программирование

Как рассчитать максимальное значение с помощью Map-Reduce в CouchDB?

Я знаю, что есть встроенная функция _stats, которая дает вам сумму, количество, минимум, максимум и сумму квадрата. Что я хотел бы знать, так это то, как рассчитать только максимум с помощью уменьшения карты. Я не могу придумать функцию сокращения, которая будет работать без дополнительной информации.

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

Моя функция карты выглядит так:

function(doc){
  emit(null, doc.value);
}
11.04.2012

  • Ваш обходной путь (сортировка по значению и выбор первой или последней записи) не будет работать с вашей функцией карты — представление сортируется по ключу, поэтому вам нужно будет выдать doc.value вместо null в качестве ключа. Но вместо такого обходного пути вы можете комбинировать имеющуюся у вас функцию карты с соответствующей функцией сокращения. 11.04.2012

Ответы:


1

Вики Couchdb предоставляет простой пример для суммы.

Вместо того, чтобы возвращать сумму значений, функция сокращения для максимального значения должна возвращать максимальное значение массива значений. Поскольку вычисление максимума является коммутативным, ассоциативным и т. д., вам не нужно беспокоиться о повторной редукции.

function (key, values, rereduce) {
    // Return the maximum numeric value.
    var max = -Infinity
    for(var i = 0; i < values.length; i++)
        if(typeof values[i] == 'number')
            max = Math.max(values[i], max)
    return max
}
11.04.2012
  • Я позволил себе расширить ваш ответ, включив в него то, что, я уверен, решит проблему PPC-Coder. 16.04.2012
  • Есть ли аналогичный способ найти максимальную дату для набора строк? 03.02.2016

  • 2

    Это также может быть решено следующим

    function (key, values, rereduce) {
      return Math.max.apply({}, values);
    }
    
    25.08.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..