Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
3 / 3 / 2
Регистрация: 27.09.2009
Сообщений: 200
1

Создать бесконечный список символов, получающихся последовательной записью натуральных чисел

28.10.2012, 22:50. Показов 3238. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста с заданием, необходимо создать бесконечный список символов, получающихся последовательной записью натуральных чисел: [’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’1’,’0’,’1’,’1’,’1’,’2’,…], никак не могу подступиться к решению
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2012, 22:50
Ответы с готовыми решениями:

Бесконечный список натуральных чисел (значения n^2 - 1 и факториалы натуральных чисел)
Собственно, необходимо написать выражение для вычисления значения*func :: , представляющего собой...

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

Найти n-ую цифру в последовательности, образованной записью квадратов натуральных чисел
На доске выписана последовательность квадратов целых чисел, без пробелов, начиная с единицы: 1 4 9...

Опишите бесконечный список чисел [1,-1,1,-1,...]
А) опишите бесконечный список чисел Б) с помощью этого списка, списка и функции zipWith опишите...

11
78 / 64 / 5
Регистрация: 25.03.2012
Сообщений: 71
28.10.2012, 22:57 2
Лучший ответ Сообщение было отмечено как решение

Решение

Haskell
1
concat $ map show [1 .. ]
или
Haskell
1
[1 .. ] >>= show
3
17 / 7 / 0
Регистрация: 20.08.2012
Сообщений: 51
28.10.2012, 23:05 3
Haskell
1
2
3
4
5
6
numList :: [Int]
numList = concat $ map toNumbers [1..]
   where 
      toNumbers :: Int -> [Int]
      toNumbers n | n == 0 = []
             | otherwise = toNumbers (n `div` 10) ++ [n `mod` 10]
2
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
29.10.2012, 00:26 4
Или вот так:

Haskell
1
2
3
4
5
6
7
8
9
toNumbers :: Int -> [Int]
toNumbers n | n == 0 = []
            | otherwise = toNumbers (n `div` 10) ++ [n `mod` 10]
            
aList :: Int -> [Int]
aList n = (toNumbers n) ++ aList (n + 1)
 
numList :: [Int]
numList = aList 1
1
0 / 0 / 1
Регистрация: 02.07.2013
Сообщений: 25
12.09.2013, 11:46 5
Ребят а можете более подробно расписать как и что происходит? Более-менее в хаскле уже соображаю, однако не все до конца понимаю.

Haskell
1
2
3
list1 :: Integer -> [Integer]
list1 0 = [ ]
list1 n = list1(n-1)++(n*2:[])
Возможно ли это переделать под бесконечный и как?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
12.09.2013, 11:56 6
Формируешь список последовательных четных... Но если нужен его конечный отрезок, то:

Haskell
1
2
3
4
Main> take 5 [2,4..]
[2,4,6,8,10]
Main> take 20 [2,4..]
[2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40]
Список [2,4..] бесконечен, но Хаскелл ленив, и вычислит только ту часть, которая нужна.
0
0 / 0 / 1
Регистрация: 02.07.2013
Сообщений: 25
12.09.2013, 16:32 7
Catstail, Так в том то и дело, что без take надо сделать.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
12.09.2013, 16:45 8
А так:

Haskell
1
2
list2 :: Int -> [Int]
list2 n = [2,4..(2*n)]
0
0 / 0 / 1
Регистрация: 02.07.2013
Сообщений: 25
12.09.2013, 17:46 9
Catstail, Конечный цикл до n. Вот и я себе голову ломаю как сделать без take
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
12.09.2013, 17:53 10
Цитата Сообщение от Kurakov Посмотреть сообщение
Конечный цикл до n.
- в последнем решении никаких циклов нет... И что значит "сделать без take"? Без использования take (свою реализацию сделать)?
0
0 / 0 / 1
Регистрация: 02.07.2013
Сообщений: 25
15.09.2013, 18:32 11
Цитата Сообщение от Catstail Посмотреть сообщение
- в последнем решении никаких циклов нет... И что значит "сделать без take"? Без использования take (свою реализацию сделать)?
Но работа заканчивается n, а такого не должно быть.
Haskell
1
2
list5 :: [Integer]
list5 = [n^5 | n<-[1..]]
Я вот так сделал бесконечный.
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,643
Записей в блоге: 13
15.09.2013, 18:42 12
А, так нужно создать функцию, порождающую бесконечный список?

Haskell
1
listOfEven = [2,4..]
0
15.09.2013, 18:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.09.2013, 18:42
Помогаю со студенческими работами здесь

Бесконечный список совершенных чисел
Здравствуйте! Помогите пожалуйста дополнить программу. Вот задание: Сгенерировать бесконечный...

Бесконечный список чисел Пелля-Люка
а) Используя функцию iterate, написать функцию, которая строит бесконечный список чисел Пелля-Люка...

Необходимо создать связной список с записью в файл и восстановлением из файла
Народ выручайте. В задании необходимо создать связной список с записью в файл и восстановлением из...

Создать список целых чисел. Создать новый список, записав в него отрицательные элементы
Создать список целых чисел. Создать новый список, записав в него отрицательные элементы.(задачу...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru