Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 26.03.2014
Сообщений: 15

Работа со списками и перебор вариантов

02.05.2014, 22:19. Показов 1906. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста, помогите реализовать Ффункциюя, по заданному списку карт, вращающаяую список чисел, каждое из которых является возможной суммой очков указанных карт, рассчитанных по правилам игры в «двадцать одно»: младшие карты считаются по номиналу, валет, дама и король считаются за 10 очков, туз может рассматриваться и как 1 и как 11 очков. Функция должна вернуть все возможные варианты
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.05.2014, 22:19
Ответы с готовыми решениями:

Работа со списками
Добрый день. Помогите, пожалуйста, написать программу на Haskell, которой на вход подается два списка: (1 длиннее другого). Найти:...

Работа со списками
Здравствуйте! Есть такая задача: Написать функцию tangledMap :: → → , которая применяет функции с номерами из нечётных элементов...

Работа со списками
Здравствуйте! Имеется такая задача: Написать функцию complexMap :: → → → → , которая применяет функции из первого аргумента в...

1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,724
Записей в блоге: 14
03.05.2014, 08:00
Haskell
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
data Cards = One | Two | Three | Four | Five | Six | Seven | Eight | Nine | Ten | V | D | K | T deriving (Eq,Show)
 
getNumT :: [Cards] -> Int
getNumT []     = 0
getNumT (c:cs) = if (c == T) then 1 + (getNumT cs) else getNumT cs
 
getSumWT :: [Cards] -> Int
getSumWT [] = 0
getSumWT (c:cs) | (c==One) = 1 + (getSumWT cs) 
                | (c==Two) = 2 + (getSumWT cs)
                | (c==Three) = 3 + (getSumWT cs)
                | (c==Four) = 4 + (getSumWT cs)
                | (c==Five) = 5 + (getSumWT cs)
                | (c==Six) = 6 + (getSumWT cs)
                | (c==Seven) = 7 + (getSumWT cs)
                | (c==Eight) = 8 + (getSumWT cs)
                | (c==Nine) = 9 + (getSumWT cs)
                | (c==Ten) = 10 + (getSumWT cs)
                | (c==V) || (c==D) || (c==K) = 10 + (getSumWT cs)
                | (c==T) = (getSumWT cs)
 
addT :: Int -> [Int] -> [Int]
addT 0 x = x
addT n x = addT (n-1) $ (map (+1) x) ++ (map (+11) x)
 
getUniq :: [Int] -> [Int] -> [Int]
getUniq [] r = r
getUniq (x:xs) r | (x `elem` r) = getUniq xs r
                 | otherwise = getUniq xs (x:r) 
                 
task :: [Cards] -> [Int]
task c = getUniq (addT nt [swt]) []
         where nt  = getNumT c
               swt = getSumWT c   
 
-- Проверка
 
Main> task [One,One,Five]
[7]
Main> task [One,One,Five,T]
[18,8]
Main>
Main> task [One,One,Five,T,T]
[29,19,9]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.05.2014, 08:00
Помогаю со студенческими работами здесь

Работа со списками
Здравствуйте! Подскажите, пожалуйста, как переделать ghci> , y <– ] в функцию, чтобы можно было в консоли написать: ...

Работа со списками
Даны списки L1,L2,L3. Если L1 и L2 являются подсписками L3, то сформировать новый список, удалив из L3 подсписки L1 и L2, в противном...

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

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

Работа со списками и подсписками
Помогите пожалуйста, нужно решить две задачи: 1. Напишите функцию ]->Int->, берущую список списков и возвращающую список из последних...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru