Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 2
Регистрация: 01.12.2012
Сообщений: 123
1

Дана матрица, найти ее наибольший элемент и номера строки и столбца, на пересечении которых он находится

06.03.2015, 21:14. Показов 877. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте помогите с заданием)
Задание: Дана матрица A(N,M). найти ее наибольший элемент ( первый по порядку, если их несколько) и номера строки и столбца, на пересечении которых он находится.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.03.2015, 21:14
Ответы с готовыми решениями:

Дана матрица A(N,M).Найдите ее наибольший элемент и номера строки и столбца на пересечении которых он находится
Помогите пожалуйста решить Дана матрица A(N,M).Найдите ее наибольший элемент и номера строки и...

Дана матрица A(n,m). Найдите ее наибольший и наименьший элемент и номера строки и столбца на пересечении которых он находится
Дана матрица A(n,m). Найдите ее наибольший и наименьший элемент и номера строки и столбца на...

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

Найти наибольший элемент матрицы, а также номера строки и столбца, на пересечении которых он находится
дана матрица A(N,M) , найти ее наибольший элемент , номера строки и столбцов, на пересечении...

5
Модератор
Эксперт функциональных языков программированияЭксперт Python
36602 / 20331 / 4220
Регистрация: 12.02.2012
Сообщений: 33,647
Записей в блоге: 13
07.03.2015, 14:57 2
Вот. Индексы - с нуля:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(defun get-el (matr i j)
  (nth j (nth i matr)))         
 
==> get-el
 
(get-el '((1 2 3) (4 5 6)) 1 2)
 
==> 6
 
(defun max-elt (matr)
  (let ((n (- (length matr) 1))
        (m (- (length (car matr)) 1))
        (im 0)
        (jm 0)
        (em (caar matr)))
       (iter (for i from 0 to n)
         (iter (for j from 0 to m)
           (let ((a (get-el matr i j)))
             (when (> a em) (setq em a im i jm j)))))
       (list em im jm)))  
 
==> max-elt
 
(max-elt '((1 2 3 4) (-5 8 3 5)))
 
==> (8 1 1)
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36602 / 20331 / 4220
Регистрация: 12.02.2012
Сообщений: 33,647
Записей в блоге: 13
09.03.2015, 09:31 3
А вот чисто функциональное решение (без присвоений). Индексы - с единицы:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
(defun max-elt (matr)
  (let* ((rmax (mapcar #'(lambda (row n) (list (apply 'max row) n)) matr (range 1 (length matr))))
         (amax (apply 'max (mapcar 'car  rmax)))
         (nmax (cadar (remove-if #'(lambda (z) (<> amax (car z))) rmax))))
    (values amax nmax (+ 1 (position amax (nth (- nmax 1) matr))))))
 
==> max-elt
 
(max-elt '((1 2 3) (-1 -2 5) (3 4 2)))
 
==> 5
2
3
1
4699 / 4394 / 380
Регистрация: 12.05.2012
Сообщений: 3,096
09.03.2015, 10:50 4
как вариант:
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun max-number (w
                   &aux
                   (a (length (car w)))
                   (v (flat w))
                   (m (reduce #'max v))
                   (p (position m v)))
  (list m (floor p a) (rem p a)))
 
> (max-number '((1 2 3 4) (-5 8 3 5)))
(8 1 1)
> (max-number '((1 2 3) (-1 -2 5) (3 4 2)))
(5 1 2)
Добавлено через 48 секунд
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(defun max-number (w
                   &aux
                   (a (length (car w)))
                   (v (flat w))
                   (m (reduce #'max v))
                   (p (position m v)))
  (values m (floor p a) (rem p a)))
 
> (max-number '((1 2 3 4) (-5 8 3 5)))
8
1
1
> (max-number '((1 2 3) (-1 -2 5) (3 4 2)))
5
1
2
Добавлено через 3 минуты
P.S.
Lisp
1
2
3
4
(defun flat (w)
  (loop for a in w 
        if (and a (atom a)) collect a
        else nconc (flat a)))
3
2 / 2 / 0
Регистрация: 10.12.2013
Сообщений: 41
12.12.2015, 12:32 5
Catstail, извините за вопрос: стоит Homelisp 1.13.4
Lisp
1
2
3
4
(max-elt '((1 2) (-1 -2)))
 
Внутри LET: EVFUN: Не найдена функция RANGE
==> ERRSTATE
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36602 / 20331 / 4220
Регистрация: 12.02.2012
Сообщений: 33,647
Записей в блоге: 13
12.12.2015, 12:58 6
stepa3800, добавь:

Lisp
1
2
3
4
(defun range (n k)
  (cond ((= n k) (list n))
        ((> n k) (range k n))
        (t (cons n (range (+ n 1) k)))))
1
12.12.2015, 12:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2015, 12:58
Помогаю со студенческими работами здесь

Найдите её наибольший элемент и номера строки и столбца на пересечении которых он находится.
Помогите пожалуйста с задачей: Дана матрица A(N,M). Найдите её наибольший элемент и номера...

Определение номера строки и столбца матрицы, на пересечении которых находится наибольший элемент
Ребят,помогите! Дана матрица размером 5х6. Составить программу для определения номера строки и...

Найти номер строки и номера столбца матрицы, на пересечении которых находится наибольший элемент матрицы
ПОМОГИТЕ СРОЧНО!!ЭКЗАМЕН!!Написать подпрограмму определения номера строки и номер столбца...

Дана матрица K(7x7). Поменять местами соответствующие элементы строки и столбца,на пересечении которых находится min элемент матрицы
Дана матрица K(7х7). Переставить местами соответствующие элементы строки и столбца,на пересечении...


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

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