Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 21.05.2014
Сообщений: 8

Замена повторяющихся элементов в матрице

01.06.2014, 12:01. Показов 1372. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста.

Задана матрица А размера 4*7. Заменить в нем ней повторяющиеся элементы на единицы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2014, 12:01
Ответы с готовыми решениями:

Замена элементов в матрице
Дана матрица размера 7*7.Найти в ней наименьший элемент в секторе над главной диагональю и наименьший элемент в секторе под главной...

Поиск повторяющихся элементов в матрице
Дан одномерный массив А(размерностью N). Разработать алгоритм выбора элементов, встречающихся в массиве А более трёх раз. вот ещё одна...

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

3
 Аватар для _sg
4709 / 4404 / 380
Регистрация: 12.05.2012
Сообщений: 3,101
01.06.2014, 12:38
списки вместо массивов:
Lisp
1
2
3
4
5
6
7
8
9
10
(defun overlap-a (w a &aux (v (reduce #'append w)))
  (loop for e in w collect (change-a e a v)))
 
(defun change-a (w a v)
  (loop for e in w
        if (> (count e v) 1) collect a
        else collect e))
 
> (overlap-a '((1 2 3) (4 5 6) (1 2 3)) 7)
((7 7 7) (4 5 6) (7 7 7))
4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38175 / 21110 / 4307
Регистрация: 12.02.2012
Сообщений: 34,712
Записей в блоге: 14
01.06.2014, 17:39
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun task (matr)
  (let* ((sm (apply 'append matr)) (l (length sm)))
    (mapcar #'(lambda (row) 
                (mapcar #'(lambda (el)
                          (if (> (- l (length (remove el sm))) 1) 1 el)) row)) matr))) 
 
==> task
 
(task '((1 2 3) (1 2 3) (5 6 1)))
 
==> ((1 1 1) (1 1 1) (5 6 1))
3
1075 / 968 / 113
Регистрация: 04.11.2012
Сообщений: 1,013
02.06.2014, 12:45
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
(defun pprint-2d-array (a)
  (dotimes (i (array-dimension a 0))
    (format t ";")
    (dotimes (j (array-dimension a 1))
      (format t " ~3d" (svref (aref a i j) 0)))
    (terpri))
  (values))
 
(defun Replace-2d-Array ()
  #'(lambda (a i j)
      (if (svref (aref a i j) 1)
          (setf (svref (aref a i j) 0) 1)
          (setf (svref (aref a i j) 1) T))))
 
(defun Replace-Matrix-Unit (x y)
  (let* ((arr (make-array (list x y)))
         (amount (array-total-size arr))
         (range (loop for i from 2 to (1+ amount) collect i))
         (vec (mapcar #'(lambda (x) (vector x nil)) range))
         (fn (Replace-2d-Array))
         (pool '()))
    (dotimes (i amount)
      (push (nth (random amount) vec) pool))
    (dotimes (i x)
      (dotimes (j y)
        (setf (aref arr i j)
              (nth (random amount) pool))))
    (pprint-2d-array arr)
    (terpri)
    (dotimes (i x)
      (dotimes (j y)
        (funcall fn arr i j)))
    (pprint-2d-array arr)))
 
> (Replace-Matrix-Unit 4 7)
;  26  24  21   5  25  10  25
;  19  26  10  28   7  21  10
;  28   7  25  19  26  10  26
;  19  21  25   9  20  13  19
 
;   1  24   1   5   1   1   1
;   1   1   1   1   1   1   1
;   1   1   1   1   1   1   1
;   1   1   1   9  20  13   1
 
> (Replace-Matrix-Unit 3 6)
;  16   2   8  19  10  16
;  18   5  16  10   8  18
;  15   2   8   9   8   8
 
;   1   1   1  19   1   1
;   1   5   1   1   1   1
;  15   1   1   9   1   1
Добавлено через 13 часов 32 минуты
Все таки внесу маленькое но полезное дополнение. А то жаль запороть хорошую идею. Я ж не смогу дальше двигаться, если буду знать что здесь набокопорил.
Кликните здесь для просмотра всего текста
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
(defun pprint-2d-array (a)
  (dotimes (i (array-dimension a 0))
    (format t ";")
    (dotimes (j (array-dimension a 1))
      (format t " ~3d" (svref (aref a i j) 0)))
    (terpri))
  (values))
 
;;; Обработка флагов, замена элементов.
(defun Replace-2d-Array ()
  #'(lambda (a i j)
      (cond
        ((zerop (svref (aref a i j) 1))
         (setf (svref (aref a i j) 1) 1))
        ((= 1 (svref (aref a i j) 1))      
         (setf (svref (aref a i j) 0) 1
               (svref (aref a i j) 1) 2)))))
 
;;; Уникальный элемент меняется во всех ячейках.
(defun Replace-Matrix-Unit (x y)
  (let* ((arr (make-array (list x y)))
         (amount (array-total-size arr))
         (range (loop for i from 2 to (1+ amount) collect i))
         ;; объект вектор, значение и флаг
         (vec (mapcar #'(lambda (x) (vector x 0)) range))
         (fn (Replace-2d-Array))
         (pool '()))
    (dotimes (i amount)
      (push (nth (random amount) vec) pool))
    ;; заполнение массива случайным выбором из пула
    (dotimes (i x)
      (dotimes (j y)
        (setf (aref arr i j)
              (nth (random amount) pool))))
    (pprint-2d-array arr)
    (terpri)
    ;; проверка и замена элементов в матрице
    (dotimes (i x)
      (dotimes (j y)
        (funcall fn arr i j)))
    (pprint-2d-array arr)))
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2014, 12:45
Помогаю со студенческими работами здесь

Замена повторяющихся элементов массива
на вход в функцию подается массив 8х8 из int чисел от 0 до 5. функция работает до тех пор пока в массиве не будет трех и более...

Определить, сколько в заданной матрице повторяющихся элементов
Сколько в заданной матрице, состоящей из него элементов 0 - 9, повторяющихся элементов. И какие они.

В матрице найти сумму повторяющихся элементов главной диагонали
Не могу понять как решить задачу! В матрице А найти сумму повторяющихся элементов главной диагонали; если она (полученная сумма) делится...

В матрице целых чисел поменять нулевую строку со строкой, содержащей наибольшее количество повторяющихся элементов.
В матрице целых чисел поменять нулевую строку со строкой, содержащей наибольшее количество повторяющихся элементов. Если можно с...

Замена элементов в матрице
Добрый день! Возник вопрос по работе в MATCAD. Есть условная матрица A. В ней некоторое количество элементов меньше единицы. Как...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru