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

Вычислить сумму квадратов всех чисел в списке

03.06.2022, 10:04. Показов 818. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Необходимо реализовать следующую программу:

Дан список списков чисел ((1 2 3 4) (2 7 4 5) (1 1 1 1))

Необходимо вычислить сумму квадратов всех чисел во всем списке тремя способами:

1 способ. С помощью функции mapcar при условии, что списки чисел одной длины

2 способ. С помощью функции mapcar, но при условии, что списки разной длины, например ((1 2 3 4) (1 2 3 4 5) (1 2 3))

3 способ. С помощью dolist

Буду очень благодарна за помощь!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.06.2022, 10:04
Ответы с готовыми решениями:

Вычислить сумму квадратов всех чисел от 1 до n
Пользователь вводит с клавиатуры целое число 'n' Нужно вычислить сумму квадратов всех чисел от 1 до n Можете объяснить как решить...

Вычислить сумму квадратов всех четных чисел
Вычислить сумму квадратов всех четных чисел от 1 до а ( а вводится с клавиатуры)

Вычислить сумму квадратов всех целых чисел от А до 50
Написать программу которая вычисляет сумму квадратов всех целых чисел от а до 50 (значение а вводится с клавиатуры ;а <= 50)

4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38200 / 21132 / 4310
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
03.06.2022, 11:33
Странная задача... В чем разница между случаями, когда длина одинакова или разная?
Вот решение, которое подходит в обоих случаях:

Lisp
1
2
3
4
5
6
7
8
(defun task1 (lists)
   (apply '+ (apply 'append (mapcar (lambda (x) (mapcar (lambda (y) (* y y)) x)) lists))))
 
(task1 '((1 2 3) (4 5 6) (7 8 9)))
==> 285
 
(task1 '((1 2 3) (4 5 6) (7 8)))
==> 204
А вот так даже проще:

Lisp
1
2
3
4
5
6
7
8
(defun task2 (lists)
  (apply '+ (mapcar (lambda (x) (* x x)) (apply 'append lists))))
 
(task2 '((1 2 3) (4 5 6) (7 8 9)))
==> 285
 
(task2 '((1 2 3) (4 5 6) (7 8)))
==> 204
Вот c dolist:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun task3 (lists)
  (let ((s 0))
     (dolist (lst lists s)
        (dolist (x lst t)
           (setq s (+ s (* x x)))))))
 
 
(task3 '((1 2 3) (4 5 6) (7 8 9)))
==> 285
 
(task3 '((1 2 3) (4 5 6) (7 8)))
==> 204
1
0 / 0 / 0
Регистрация: 03.06.2022
Сообщений: 2
03.06.2022, 11:58  [ТС]
Как я поняла, списки чисел должны быть аргументами mapcar. То есть

mapcar "функция вычисления квадратов"
(1 2 3 4)
(1 2 3 4)
...

но поменяет ли это само решение, не знаю
0
 Аватар для _sg
4710 / 4405 / 380
Регистрация: 12.05.2012
Сообщений: 3,102
03.06.2022, 16:44
Lisp
1
2
3
4
5
6
7
8
9
(defun sum-in (w)
  (loop for e in w sum
        (reduce #'+ (mapcar #'(lambda (a) (* a a))
                            e))))
 
> (sum-in '((1 2 3 4) (2 7 4 5) (1 1 1 1)))
128
> (sum-in '((1 2 3 4) (1 2 3 4 5) (1 2 3)))
99
Добавлено через 2 минуты
Lisp
1
2
3
4
5
6
7
8
(defun sum-in (w)
  (loop for e in w sum
        (reduce #'+ e :key #'(lambda (a) (* a a)))))
 
> (sum-in '((1 2 3 4) (2 7 4 5) (1 1 1 1)))
128
> (sum-in '((1 2 3 4) (1 2 3 4 5) (1 2 3)))
99
Добавлено через 5 минут
Lisp
1
2
3
4
5
6
7
8
9
(defun sum-in (w)
  (loop for e in w
        if (listp e) sum (sum-in e)
        else sum (* e e)))
 
> (sum-in '((1 2 3 4) (2 7 4 5) (1 1 1 1)))
128
> (sum-in '((1 2 3 4) (1 2 3 4 5) (1 2 3)))
99
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38200 / 21132 / 4310
Регистрация: 12.02.2012
Сообщений: 34,738
Записей в блоге: 14
03.06.2022, 20:44
Цитата Сообщение от Darya55k Посмотреть сообщение
Как я поняла, списки чисел должны быть аргументами mapcar.
- у меня так и есть... Смотри внимательно. Параметр lists - это список списков.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.06.2022, 20:44
Помогаю со студенческими работами здесь

Вычислить сумму квадратов всех нечетных чисел в одномерном массиве
вычислить сумму квадратов всех нечетных чисел в одномерном массиве из n натуральных чисел.n:umnik:=17

Вычислить S - сумму квадратов всех целых чисел, попадающих в интервал
Нужно написать\решить пару задач на данном языке. Никак не могу разобраться со следующими: 1. Написать программы для решения задачи:...

Вычислить сумму квадратов всех целых чисел, попадающих в интервал
Вычислить сумму квадратов всех целых чисел, попадающих в интервал (ln(x), ex) при x>1 ;

Вычислить S-сумму квадратов всех целых чисел, попадающих в интервал
помогите решить задачи ...Времени в обрез ...Вот V – вариант. 1. Вычислить p = (1-(1/2)2)*(1-(1/3)2)…(1-(1/n)2), n>2; 2....

Вычислить сумму квадратов всех целых чисел, попадающих в интервал
Вычислить сумму квадратов всех целых чисел, попадающих в интервал (ln(x), ex) при x>1 ;


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru