Dren
1

Определить номер строки матрицы, сумма элементов которой наибольшая

31.03.2013, 16:52. Показов 962. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
файл определить номер строки матрицы, сумма элементов которой наибольшая;
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2013, 16:52
Ответы с готовыми решениями:

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

Определить номер строки матрицы С (N, N), сумма элементов которого наибольшая
Массив должен передаваться в функцию как параметр. Ранее я уже делал практически такое задание,...

Найти номер той строки в массиве сумма элементов которой наибольшая
Помогите решить пожалуйста. Дан массив X(N,M). Найти номер той строки в массиве сумма элементов...

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

5
4693 / 4389 / 379
Регистрация: 12.05.2012
Сообщений: 3,091
31.03.2013, 18:51 2
Lisp
1
2
3
4
5
(defun max-line (w &aux (v (mapcar #'(lambda (a) (apply #'+ a)) w)))
  (position (reduce #'max v) v))
 
> (max-line '((1 2 3) (1 2 4) (1 2 3)))
1
1
Dren
31.03.2013, 19:13 3
Спасибо, а есть еще какие то варианты?
4693 / 4389 / 379
Регистрация: 12.05.2012
Сообщений: 3,091
31.03.2013, 22:02 4
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(defun sum (w)
  (if w (+ (car w) (sum (cdr w))) 0))
 
(defun line (w m n)
  (cond ((null w) (car m))
        ((> (sum (car w)) (cadr m)) (line (cdr w) (list (1+ n) (sum (car w))) (1+ n)))
        ((line (cdr w) m (1+ n)))))
 
(defun max-line (w)
  (when w (line (cdr w) (list 0 (sum (car w))) 0)))
 
> (max-line '((1 2 5) (1 2 4) (1 2 3)))
0
> (max-line '((1 2 3) (1 2 4) (1 2 3)))
1
> (max-line '((1 2 3) (1 2 4) (1 2 7)))
2
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(defun sum (w)
  (if w (+ (car w) (sum (cdr w))) 0))
 
(defun line (w m n &aux (s (sum (car w))))
  (cond ((null w) (car m))
        ((> s (cadr m)) (line (cdr w) (list (1+ n) s) (1+ n)))
        ((line (cdr w) m (1+ n)))))
 
(defun max-line (w)
  (when w (line (cdr w) (list 0 (sum (car w))) 0)))
 
> (max-line '((1 2 3) (1 2 4) (1 2 7)))
2
> (max-line '((1 2 3) (1 2 4) (1 2 3)))
1
> (max-line '((1 2 5) (1 2 4) (1 2 3)))
0
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
35522 / 19997 / 4186
Регистрация: 12.02.2012
Сообщений: 33,176
Записей в блоге: 13
01.04.2013, 10:29 5
В таких задачах всегда может оказаться, что максимум встречается не единожды... Вот решения, которые возвращают список строк с максимальной суммой:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun task (matr)
  (let* ((rs (mapcar #'(lambda (x) (apply '+ x)) matr))
         (rn nil)
         (rn (dotimes (i (length rs) (reverse rn)) (push i rn)))
         (ma (apply 'max rs)))
       (remove nil (mapcar #'(lambda (x y) (if (= x ma) y nil)) rs rn))))
    
==> task
 
(task '((1 1 1) (2 2 2) (3 3 3) (2 2 2) (3 3 3)))
 
==> (2 4)
или

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(defun task (matr)
  (let ((rsum nil) (ma (caar matr)) (rm nil))
      (iter (for r in matr) (collecting (apply '+ r) into rsum))
      (iter (for i in rsum) (maximizing i into ma))
      (iter (for j in rsum) (for k from 0 to (1- (length rsum)))
            (when (= j ma) (collecting k into rm)))
      rm))
 
 
==> task
 
(task '((1 1 1) (2 2 2) (3 3 3) (2 2 2) (3 3 3)))
 
==> (2 4)
0
Заблокирован
03.04.2013, 02:18 6
Вариант для автолиспа
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(defun max_line (mx / ListOfSums MaxSum  Sum i Result)
  (setq ListOfSums    (mapcar '(lambda (x) (apply '+ x)) mx)
    MaxSum    (apply 'max ListOfSums)
    i      0
    Result '()
  )
  (foreach Sum ListOfSums
    (if (= Sum MaxSum)
      (setq Result (cons i Result))
    )
    (setq i (1+ i))
  )
  (reverse Result)
)
2
03.04.2013, 02:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2013, 02:18
Помогаю со студенческими работами здесь

Определить номер строки матрицы, сумма элементов которой минимальна
дана матрица целых чисел Х. Определит номер строки матрицы,сумма элементов которой минимальна....

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

Определить номер строки матрицы, сумма элементов которой минимальна
Дана матрица X(n,m) целых чисел. Определить номер строки матрицы,сумма элементов которой...

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


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

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

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