0 / 0 / 0
Регистрация: 06.06.2017
Сообщений: 3
1

Функция: найти количество троек подряд идущих одинаковых элементов списка

06.06.2017, 10:05. Показов 1527. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
написать функцию, вычисляющую количество троек подряд идущих элементов числового списка, в каждой из которых все элементы одинаковы.
Например (1 1 3 3 3 3 4 3 4 4 4 2 1 1 1) -> 4.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2017, 10:05
Ответы с готовыми решениями:

Функция, вычисляющая количество троек подряд идущих элементов числового списка
написать функцию, вычисляющую кол-во троек подряд идущих элементов числового списка, в каждой из...

Функция: вычислить количество троек подряд идущих элементов числового списка
написать функцию, вычисляющую количество троек подряд идущих элементов числового списка, в каждой...

Clojure Написать функцию, вычисляющую количество троек подряд идущих элементов числового списка
написать функцию, вычисляющую кол-во троек подряд идущих элементов числового списка, в каждой из...

Найти наименьшее количество одинаковых, идущих подряд элементов
Дан вектор размерности N. Найти наименьшее количество одинаковых, идущих подряд элементов.

3
4688 / 4384 / 379
Регистрация: 12.05.2012
Сообщений: 3,089
06.06.2017, 13:47 2
Lisp
1
2
3
4
5
6
7
(defun count-triples (w)
  (cond ((null (cddr w)) 0)
        ((= (car w) (cadr w) (caddr w)) (1+ (count-triples (cdr w))))
        (t (count-triples (cdr w)))))
 
> (count-triples '(1 1 3 3 3 3 4 3 4 4 4 2 1 1 1))
4
Lisp
1
2
3
4
5
6
7
(defun count-triples (w)
  (if (cddr w) (+ (if (= (car w) (cadr w) (caddr w)) 1 0)
                  (count-triples (cdr w)))
      0))
 
> (count-triples '(1 1 3 3 3 3 4 3 4 4 4 2 1 1 1))
4
Добавлено через 3 минуты
Lisp
1
2
3
4
5
6
7
8
(defun count-triples (w &optional (n 0))
  (if (cddr w)
      (count-triples (cdr w)
                     (+ n (if (= (car w) (cadr w) (caddr w)) 1 0)))
      n))
 
> (count-triples '(1 1 3 3 3 3 4 3 4 4 4 2 1 1 1))
4
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
35612 / 19506 / 4078
Регистрация: 12.02.2012
Сообщений: 32,547
Записей в блоге: 13
06.06.2017, 15:12 3
Lisp
1
2
3
4
5
6
7
8
(defun task (lst)
  (apply '+ (mapcar (lambda (x y z) (if (= x y z) 1 0)) lst (cdr lst) (cddr lst))))
 
==> TASK
 
(task '(1 1 3 3 3 3 4 3 4 4 4 2 1 1 1))
 
==> 4
1
4688 / 4384 / 379
Регистрация: 12.05.2012
Сообщений: 3,089
06.06.2017, 22:49 4
как вариант:
Lisp
1
2
3
4
5
6
7
8
(defun count-triples (w)
  (loop for a in w
        for b in (cdr w)
        for c in (cddr w)
        when (= a b c) count a))
 
> (count-triples '(1 1 3 3 3 3 4 3 4 4 4 2 1 1 1))
4
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2017, 22:49
Помогаю со студенческими работами здесь

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

Определите количество пифагоровых троек из идущих подряд элементов последовательности
Нужно написать программу, выполняющую один раз ввод последовательности целых чисел, признаком...

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

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


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

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

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