![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: 18 Всего: 50 |
сие интерпретатор не понимает, меняем на gen(s) -- имеем рекурсию. А вообще -- генерит всего лишь перестановки. -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
| Artemios |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: 18 Всего: 50 |
Вот новый вариант позиционной системы, так вроде все замечательно:
Это сообщение отредактировал(а) Artemios - 14.11.2006, 13:44 -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
nerezus по-моему имел ввиду другое. Ему нужен был не способ генерации, основанный на системе счисления, а способ преобразования из десятичной системы (или шестнадцатиричной) в ту, которая задана текущим алфавитом. А твой вариант мало чем отличаеся от всех предыдущих, разве что алгоритмом. |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 1 Всего: 43 |
albertn, да нет, мне нужно было просто составить все возможные комбинации(с повторениями и т.д.) Это уже сделано.
Просто переход на новую систему счисления - это один из способов решения ) Кстати еще способ придумали: на вход идет предудущее "число"(или просто лежит как self.prev), а по нему составляется следующее. ИМХО наиболее простой способ ;) |
|||
|
||||
| Artemios |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 405 Регистрация: 14.8.2006 Где: Саратов, Россия Репутация: 18 Всего: 50 |
Именно это и было в моем самом первом примере (в self.curr_l на каждой итерации - предыдущее, метод next() генерит следующее) И в более красивом примере albertn (первом) - то же, каждое следующее генерится в цикле на основе предыдущего (в state), с выбросом текущего по yield.
Скажем так, меня просто заинтересовала позиционная система с произвольным алфавитом и базой, а извращения над ней - для подгонки к генерации требуемых комбинаций Оправдался? -------------------- fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ] |
||||
|
|||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
В принципе, то все предложенные варианты в той или иной мере основываются на системе счисления. А вариантов я сходу бы штук пять бы сделал. Ведь не в этом суть, а в том, чтоб все это работало как можно быстрее. PS. Невиновным невчем оправдываться |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 1 Всего: 43 |
УУ, а вот твой пример то, хоть и выглядит самым красивым, а глючит нещадно Например, если поставить x1=3 x2=3, то.... |
|||
|
||||
| nerezus |
|
||||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 1 Всего: 43 |
еще раз дам код:
c:\\1.txt
|
||||
|
|||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 1 Всего: 43 |
Для примера, если написать в 1.txt
то работает, как надо. |
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
nerezus, self.start >= self.finish в строке 15 замени на self.start > self.finish, тогда все заработает
|
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 1 Всего: 43 |
А как сделать, чтобы повторяющихся символов не было?
Можно конечно в список символы загнать и проверять, но... не изящно ) |
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
||||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 1 Всего: 43 |
Хм, а такой способ как будет выглядеть? Ибо у меня тупо проверкой в генерированной строке производится )
|
|||
|
||||
| albertn |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
|
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |