Модератор
Эксперт функциональных языков программированияЭксперт Python
36590 / 20320 / 4218
Регистрация: 12.02.2012
Сообщений: 33,621
Записей в блоге: 13
1

Сортировка матрицы по столбцам (из раздела "C++ для начинающих")

09.03.2014, 10:15. Показов 1196. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, расположить их в соответствии с ростом характеристик;
Матрица представляется списком строк. Так, матрица:

https://www.cyberforum.ru/cgi-bin/latex.cgi?<br />
\begin{pmatrix}11 & 22 & 33\\ 1 & 2 & 3 \\ -1 & -2 & -3 \end{pmatrix}<br />


в Лиспе представляется списком ((11 22 33) (1 2 3) (-1 -2 -3))
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2014, 10:15
Ответы с готовыми решениями:

Подсчет похожих строк матрицы (из раздела C++ для начинающих)
Исходная формулировка: &quot;Дана целочисленная матрица размерности m х n, элементы значения от 0 до...

Еще задача из раздела "С для начинающих" - печать части квадратной матрицы
Нужно вывести (например, по строкам) часть квадратной матрицы, заданной на чертеже: ...

Сортировка матрицы по столбцам
Дана матрица n*m. Надо отсортировать ее по столбцам. Как точно не указано. Я решила сделать...

Сортировка динамической матрицы по столбцам
Здравствуйте. Я столкнулся с трудностями при решении задачи на сортировку матриц и прошу помощи....

Сортировка элементов матрицы по столбцам
Нужно отсортировать элементы матрицы по столбцам. Тремя способами : ввод с кл, рандом заполнение и...

4
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
10.03.2014, 17:34 2
попытался решить задачу средствами racket. Обалдел конечно от обилия библиотек, но еще мало знаний. Попробуем с велосипедами.

Добавлено через 52 минуты
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#lang racket
 
(define (matrix) (list
                (list -1 2 3 4 -5)
                (list -2 -4 7 8 9)
                (list -5 4 3 2 1)))
 
(define (transpose m)
  (if (or (null? m) (null? (car m))) '()
      (cons (map (lambda (x) (append (car x))) m)
            (transpose (map cdr m)))))
 
(define (fold op init lst)
  (cond ((null? lst) init)
        ((< (car lst) 0) (fold op (op init (car lst)) (cdr lst)))
        (else (fold op init (cdr lst)))))
 
(transpose (sort 
            (transpose (matrix))
            (lambda (x y) (< (fold + 0 x)
                        (fold + 0 y)))))
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36590 / 20320 / 4218
Регистрация: 12.02.2012
Сообщений: 33,621
Записей в блоге: 13
10.03.2014, 17:56  [ТС] 3
Цитата Сообщение от castorsky Посмотреть сообщение
Обалдел конечно от обилия библиотек, но еще мало знаний
- знаний языка у Вас явно достаточно! И почему такое презрение к "велосипедам"?

Добавлено через 2 минуты
castorsky, не заметил, где учитывается нечетность элемента.

Добавлено через 2 минуты
Вот мое решение (HomeLisp):

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun task (matr)
 (let* ((m (apply 'mapcar (cons 'list matr))) ;; транспонирование
        (c (mapcar #'(lambda (r) ;; вычисление характеристики и вставка 0-м элементом
            (cons (abs (apply '+ (remove-if-not #'(lambda (x) (and (oddp x) (minusp x))) r))) r)) 
                  m))
        (s (qsort-a c 'car)) ;; сортировка
        (mm (mapcar 'cdr s))) ;; удаление ключей
       (apply 'mapcar (cons 'list mm)))) ;; финишное транспонирование
       
(task '((-1 2 -7) (1 2 -5) (4 5 -6)))
 
==> ((2 -1 -7) (2 1 -5) (5 4 -6))
1
1978 / 1082 / 87
Регистрация: 29.11.2013
Сообщений: 3,353
10.03.2014, 18:32 4
Цитата Сообщение от Catstail Посмотреть сообщение
И почему такое презрение к "велосипедам"?
нету презрения. Надо же когда-то осваивать набор библиотек. Глупо использовать только kernel language.
Цитата Сообщение от Catstail Посмотреть сообщение
не заметил, где учитывается нечетность элемента.
я упустил этот момент. Ну ладно, доделывать уже не стану.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36590 / 20320 / 4218
Регистрация: 12.02.2012
Сообщений: 33,621
Записей в блоге: 13
10.03.2014, 18:40  [ТС] 5
Цитата Сообщение от castorsky Посмотреть сообщение
Надо же когда-то осваивать набор библиотек.
- зачем делать это специально?

- Если у Вас на racket есть промышленные проекты - Вы библиотеки освоите в процессе работы;
- Если проектов нет - зачем учить библ. вызовы? Они все равно не пригодятся...
0
10.03.2014, 18:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.03.2014, 18:40
Помогаю со студенческими работами здесь

Сортировка матрицы по столбцам и строкам
Задание. Дан двумерный квадратный массив размером n*n, заполненный числами в случайном порядке....

Сквозная сортировка выбором по столбцам матрицы
program SelectionSort; var n,i,j,m:integer; a:arrayof integer; min, imin:integer; ...

Шейкер-сортировка матрицы по столбцам (по убыванию)
Помогите пожалуйста с шейкер сортировкой матрицы по столбцам,на уменьшение.Очень надо.Спасибо)

Сортировка матрицы по столбцам и строкам от наименьшего к наибольшему
Дана матрица N на N случайных чисел. Требуется провести сортировку по столбцам и строкам от...

Сортировка массива по строкам и столбцам (не получается отсортировать по столбцам)
#include &lt;iostream&gt; #include &lt;time.h&gt; #include &lt;iomanip&gt; #include &lt;Windows.h&gt; #include &lt;string&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru