Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 1
Регистрация: 03.02.2016
Сообщений: 5
1

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

03.02.2016, 12:10. Просмотров 1473. Ответов 10
Метки нет (Все метки)


Добрый день.
Прошу помощи с решением вот такой задачи:

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


Заранее благодарю за любое участие.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.02.2016, 12:10
Ответы с готовыми решениями:

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

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

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

Определить, на каком курсе больше всего отличников.
срочно нужна помощь с задачей Дан список из n записей о студентах факультета. Каждая запись...

10
Модератор
Эксперт Python
28363 / 15262 / 3010
Регистрация: 12.02.2012
Сообщений: 24,985
Записей в блоге: 4
03.02.2016, 13:59 2
Список месяцев, в которых число выходных и праздников максимально:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun task (pairs)
  (let* ((n (length pairs))
         (p (mapcar #'(lambda (m) (cons m (- n (length (remove-if #'(lambda (x) (= m (cadr x)))
                       pairs))))) (range 1 12)))
         (ma (apply 'max (mapcar 'cdr p))))
      (mapcar 'car (remove-if-not #'(lambda (x) (= ma (cdr x))) p))))
 
==> task
 
(task '((1 1) (2 1) (3 1) (23 2) (8 3) (1 5) (2 5) (9 5)))
 
==> (1 5)
2
4478 / 4192 / 350
Регистрация: 12.05.2012
Сообщений: 2,952
03.02.2016, 14:32 3
Лучший ответ Сообщение было отмечено Hepworth как решение

Решение

как вариант:
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun max-days-off-month (w
                           &aux
                           (v (loop for a in w
                                    collect (cadr a)))
                           (z (loop for a in (remove-duplicates v)
                                    collect (list a (count a v))))
                           (m (loop for a in z maximize (cadr a))))
  (remove-if-not #'(lambda (a) (= (cadr a) m)) z))
 
> (max-days-off-month '((1 1) (2 1) (3 1) (23 2) (8 3) (1 5) (2 5) (9 5)))
((1 3) (5 3))
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun max-days-off-month (w
                           &aux
                           (v (loop for a in w
                                    collect (cadr a)))
                           (z (loop for a in (remove-duplicates v)
                                    collect (list a (count a v))))
                           (m (loop for a in z maximize (cadr a))))
  (loop for a in (remove-if-not #'(lambda (a) (= (cadr a) m)) z)
        collect (car a)))
 
> (max-days-off-month '((1 1) (2 1) (3 1) (23 2) (8 3) (1 5) (2 5) (9 5)))
(1 5)
2
0 / 0 / 1
Регистрация: 03.02.2016
Сообщений: 5
03.02.2016, 19:13  [ТС] 4
Catstail, _sg, огромное спасибо за вашу помощь! Но вот вопрос ещё - не скажете, какую версию компилятора вы используете? Испробовала 3 разных, но все они ругаются, при чем, по совершенно разным причинам...
0
83 / 82 / 8
Регистрация: 31.03.2015
Сообщений: 444
03.02.2016, 19:33 5
Hepworth, Скорее всего SBCL, ABCL или HomeLisp
0
0 / 0 / 1
Регистрация: 03.02.2016
Сообщений: 5
03.02.2016, 19:39  [ТС] 6
Vaderkos, большое спасибо, первые два еще не пробовала.
0
4455 / 2074 / 263
Регистрация: 01.03.2013
Сообщений: 5,509
Записей в блоге: 22
03.02.2016, 19:43 7

Не по теме:

Цитата Сообщение от Hepworth Посмотреть сообщение
первые два еще не пробовала
Вот это я понимаю - раскрученность бренда! :)


ЗЫ по сабжу - в январе. И думать нечего
0
4478 / 4192 / 350
Регистрация: 12.05.2012
Сообщений: 2,952
03.02.2016, 20:26 8
Hepworth,
https://common-lisp.net/project/lispbox/
http://lispcabinet.sourceforge.net

Добавлено через 1 минуту
https://www.youtube.com/watch?v=l8bmSo5cqNY
1
0 / 0 / 1
Регистрация: 03.02.2016
Сообщений: 5
03.02.2016, 20:52  [ТС] 9
_sg, ещё раз огромное спасибо! теперь всё работает, пойду дальше разбираться))
0
4478 / 4192 / 350
Регистрация: 12.05.2012
Сообщений: 2,952
03.02.2016, 21:21 10
как вариант:
Lisp
1
2
3
4
5
6
7
8
9
10
(defun max-days-off-month (w
                           &aux
                           (v (mapcar #'cadr w))
                           (z (loop for a in (remove-duplicates v)
                                    collect (list a (count a v))))
                           (m (loop for a in z maximize (cadr a))))
  (mapcar #'car (loop for a in z when (= (cadr a) m) collect a)))
 
> (max-days-off-month '((1 1) (2 1) (3 1) (23 2) (8 3) (1 5) (2 5) (9 5)))
(1 5
Добавлено через 43 секунды
Lisp
1
2
3
4
5
6
7
8
9
10
(defun max-days-off-month (w
                           &aux
                           (v (mapcar #'cadr w))
                           (z (loop for a in (remove-duplicates v)
                                    collect (list a (count a v))))
                           (m (loop for a in z maximize (cadr a))))
  (loop for a in z when (= (cadr a) m) collect (car a)))
 
> (max-days-off-month '((1 1) (2 1) (3 1) (23 2) (8 3) (1 5) (2 5) (9 5)))
(1 5)
Добавлено через 5 минут
Lisp
1
2
3
4
5
6
7
8
9
10
11
(defun max-days-off-month (w &aux (v (mapcar #'cadr w))
                           (z (loop for a in
                                    (remove-duplicates v)
                                    collect `(,a ,(count a v)))))
  (loop for a in z when (= (cadr a)
                           (loop for a in z
                                 maximize (cadr a)))
        collect (car a)))
 
> (max-days-off-month '((1 1) (2 1) (3 1) (23 2) (8 3) (1 5) (2 5) (9 5)))
(1 5)
1
Модератор
Эксперт Python
28363 / 15262 / 3010
Регистрация: 12.02.2012
Сообщений: 24,985
Записей в блоге: 4
04.02.2016, 11:52 11
Hepworth, я в HomeLisp писал. Все работает.

Добавлено через 25 минут
Можно и вот так (HomeLisp):

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
(defun task (lst)
  (let ((h (gensym 'h)) (max 0))
    (hashCreate h)
    (iter (for p in lst)
       (if (hashKeyExist h (car p)) 
           (let ((v (car (hashGet h (car p)))))
                 (hashErase h (car p))
                 (hashPut h (car p) (+ v 1) ))
           (hashPut h (car p) 1)))
    (hashMap h (lambda (k v) (setf max (if (> v max) v max))))
    (hashMap h (lambda (k v) (when (= v max) (printline k))))
    (hashDestroy h)))
 
==> task
 
(task '((1 1) (1 2) (2 23) (3 8) (5 1) (5 2) (5 9)))
 
5
 
==> T
 
(task '((1 1) (1 2) (1 3) (2 23) (3 8) (5 1) (5 2) (5 9)))
 
1
5
 
==> T
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2016, 11:52

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Нужно определить то слово в каком больше всего цифр
Есть массив обектов "слово". нужно определить то слово в каком больше всего цыфр.Избегайте...

Определить, на каком факультете обучается больше всего студентов
Дан список из n записей о студентах. Каждая запись содержит следующие поля: фамилия, имя, отчество,...

Определить, в каком из чисел последовательности больше всего делителей
Решил множество задач, а вот с этими не могу ни как справиться, скоро ещё сдача...Выручайте...

Определить в каком столбце матрицы больше всего элементов кратных 7
1.определить в каком столбце матрицы больше всего элементов,кратных 7 и обнулить,его элементы.

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.