Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Перестановки чисел (http://www.flasher.ru/forum/showthread.php?t=79688)

Marleny 13.05.2006 18:28

Перестановки чисел
 
Помогите запрограммировать такую штуку: вводится число классов, в каждом классе число элементов (например числа). Нужно получить строки заданной длины N из всевозможных перестановок этих чисел. Например, 4 класса, в них 2, 2, 1, 1 элементов: [1,1], [2,2], [3], [4], длина строки =3. Должно получиться:
112
113
114
121
122
123
124
131
132
134
141
142
143
211
212
213
214
221
223
232
234
241
242
243
311
312
314
321
322
324
341
342
411
412
413
421
422
423
431
432
Вся проблема в том, что заранее неизвестна длина строки N, и поэтому нельзя сделать просто определенное число вложенных циклов. Помогите пожалуйста!! очень нужно

0xFFFFFF 14.05.2006 05:02

рекурсия?

Marleny 14.05.2006 12:23

Белая
желательно нет

еще можно так сформулировать: есть массив элементов, например [1,1,2,2,3,4], нужно сделать все сочетания какой-то длины, например 3

0xFFFFFF 14.05.2006 12:25

Цитата:

Сообщение от Marleny
Белая
желательно нет

еще можно так сформулировать: есть массив элементов, например [1,1,2,2,3,4], нужно сделать все сочетания какой-то длины, например 3

ты мне поработать предлагаешь? сам-то как пробовал?
и чем тебе не нравится рекурсия?

etc 14.05.2006 14:23

Marleny,
2.718281828459045 (exp) [Сделайте всё за меня]

Marleny 14.05.2006 16:09

Я по-моему вполне понятно написала, что я делала (вложенные циклы), в чем проблема (неизвестно их количество). Я прошу предложить какой-то алгоритм, или подсказать идею реализации. Если кто-то считает, что я просто прошу все сделать за меня и ничего не пытаюсь сделать сама, то это не так. Хотя, конечно, каждый имеет право на собственное мнение. Единственная просьба - если не хотите или не можете предложить что-то конкретно по задаче, не стоит тыкать меня в тему "делай все за меня" или наподобие.

Белая
Я тебе поработать не предлагаю, а прошу помочь.

0xFFFFFF 14.05.2006 17:14

я же говорю РЕКУРСИЯ.
у меня всё получилось.
других выходов пока не вижу.

iNils 14.05.2006 18:40

Можно и без рекурсии, но алгоритм сложнее.

0xFFFFFF 14.05.2006 19:06

Цитата:

Сообщение от iNils
Можно и без рекурсии, но алгоритм сложнее.

как например?

iNils 14.05.2006 19:21

Цитата:

Сообщение от Белая
как например?

Конечно через циклы.


Часовой пояс GMT +4, время: 14:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.