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

схема сортировки список разные критерии

У меня есть конечный список четверок, например.

(list (list 1 3 5 5) (list 2 3 4 9) (list 3 4 4 6)(list 4 7 10 3)).

Я обозначаю каждый из элементов через (a1 a2 a3 a4).

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

  1. числа а2,
  2. позже разница (а3 - а4),
  3. а позже числа a3.

Пожалуйста, помоги, если можешь.

27.12.2011

  • Просто чтобы вы знали, люди ценят, когда вы показываете, что приложили усилия для достижения своей цели. Если вы не расскажете о том, что пробовали и где застряли, может показаться, что вы просите людей сделать все это за вас. 28.12.2011
  • Я работаю над более крупной программой. Я не могу вставить его сюда, он слишком большой. Вопрос, который у меня есть, является последним шагом. Спасибо за помощь. Дебби. 28.12.2011
  • Критерии обозначают, по чему сортировать? Итак, для четверок, у которых числа a2 совпадают, вы затем сравниваете их (a3 - a4)s? 28.12.2011

Ответы:


1

Насколько я могу судить, ваши упорядоченные критерии - это порядок сортировки. Если это так, то следующая программа должна выполнить эту сортировку.

(define (strange-sort quadruples)
  (define (a2 quad)
    (cadr quad))
  (define (a3 quad)
    (caddr quad))
  (define (a4 quad)
    (cadddr quad))
  (sort quadruples
        (lambda (x y)
          (cond ((< (a2 x) (a2 y))
                 #t)
                ((> (a2 x) (a2 y))
                 #f)
                (else
                 (cond ((< (- (a3 x) (a4 x))
                           (- (a3 y) (a4 y)))
                        #t)
                       ((> (- (a3 x) (a4 x))
                           (- (a3 y) (a4 y)))
                        #f)
                       (else
                        (cond ((< (a3 x) (a3 y))
                               #t)
                              (else #f)))))))))
28.12.2011
  • Уважаемый Arafinwe, Большое спасибо за вашу помощь и код. Теперь я вижу смысл, поэтому я могу добавить дополнительные критерии для сортировки четверок. Однако, пожалуйста, немного измените его в четверках сортировки строк, чтобы он работал. С пожеланиями, Дебби. 29.12.2011
  • @DebbieMigórska Хм. В вашей реализации нет функции sort? Можете ли вы сказать мне, какую реализацию схемы вы используете? Эта программа отлично работает для меня (на схеме MIT/GNU). 29.12.2011
  • Новые материалы

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

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

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

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

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

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

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