![]() |
|
|
![]()
|
|
| PavAks |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
Всем привет! Помогите, плз, с идеей. Я для изучения ruby накачал в нете разных заданий, и пытаюсь их выполнить. Изучаю его недолго
Написать метод partitions_p(n), которые получают целое положительное число n и возвращают все разложения числа n на сумму натуральных слагаемых (т.е. возвращают массивы слагаемых). В разложениях слагаемые идут по убыванию. Пример: [[5], [4, 1], [3, 2], [3, 1, 1], [2, 2, 1], [2, 1, 1, 1], [1, 1, 1, 1, 1]] з.ы. подскажите, пожалуйста, с какого боку к этому подходить. Или, может, есть какая функция, которая делает такое разложение? Или делать все циклами? |
|||
|
||||
| setq |
|
|||
|
Unregistered |
Если такая функция уже есть, то задача становится немного бессмысленной. Циклы - хорошая идея, почему нет?) |
|||
|
||||
| PavAks |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
Просто я не могу себе представить как это делать циклами
|
|||
|
||||
| PavAks |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
Что-то начало получаться, хотя не все разложения выдает
[[5], [4, 1], [3, 2, 1], [3, 2], [3, 1, 1, 1], [2, 2, 1], [2, 1, 1, 1], [1, 1, 1, 1, 1]] ----------------------------------------------------------------------- [[10], [9, 1], [8, 2], [7, 3], [6, 4], [5, 5], [5, 4, 1], [5, 3, 2], [5, 2, 2, 1], [5, 1, 1, 1, 1, 1], [4, 4, 2], [4, 4, 1, 1], [4, 3, 3], [4, 2, 2, 2], [4, 1, 1, 1, 1, 1, 1], [3, 3, 3, 1], [3, 3, 2, 2], [3, 2, 2, 2, 1], [3, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2], [2, 2, 2, 2, 1, 1], [2, 1, 1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]]
На числах больше 10 не очень хорошо работает :( Это сообщение отредактировал(а) PavAks - 3.2.2008, 01:46 |
|||
|
||||
| fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: нет Всего: 27 |
как то сложно у Вас получилось. У меня так
Изучаю ruby совсем недавно. Уверен, что можно сделать еще короче. Это сообщение отредактировал(а) fixxer - 5.2.2008, 23:16 -------------------- ![]() |
|||
|
||||
| fixxer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 672 Регистрация: 14.9.2006 Где: Саратов, Россия Репутация: нет Всего: 27 |
удалось сократить до
ЗЫ. Админы, а когда будет подсветка для ruby? -------------------- ![]() |
|||
|
||||
| PavAks |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 23.1.2008 Репутация: нет Всего: нет |
ну ты даешь... класс...
|
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
Эх, решение уже найдено, но у меня есть небольшое исправление, чтобы результат выводился именно в том виде как в написано в задании:
Это сообщение отредактировал(а) source777 - 9.2.2008, 17:25 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
![]()
|
| Правила форума "Ruby: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Ruby: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |