Форум 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)

tonnon 14.05.2006 19:59

Цитата:

Сообщение от iNils
Не совсем верно. Могут использоваться цифры 1, 1, 2, 2, 3, 4. То есть единица в разных положениях может использоваться дважды, но! есть 1(первая) и есть 1(вторая) и использовать в комбинации 231 единицу можно только один раз, либо с первой либо со второй. Поэтому число комбинаций будет меньше.

эт я просто привел пример. я не говорил что эта формула будет решением

0xFFFFFF 14.05.2006 21:28

Цитата:

Сообщение от tonnon
эт я просто привел пример. я не говорил что эта формула будет решением

зачем? выпендриться?

Nirth 14.05.2006 21:30

Цитата:

зачем? выпендриться?
Какая ты злая стала

0xFFFFFF 14.05.2006 21:58

Цитата:

Сообщение от Nirth
Какая ты злая стала

я?? злая? не люблю пустой выпендреж :))

Nirth 14.05.2006 21:59

человек высказал идею...

iNils 14.05.2006 22:00

Цитата:

Сообщение от Marleny
iNils
то есть ты предлагаешь делать след. образом (arr=[1,1,2,2,3,4]), используя индексы:
012, увеличиваем 2 пока не станет равной 5,т.е:
012, 013, 014, 015
потом 5-->0, предыдущая цифра (1) увеличивается на единицу
020, 021, 022, 023и т.д.
а как в таком случае отлавливать ситуации, когда индексы повторяются? (020, 022,...)

именно. а индексы проверять до первого свободного вверх.

0xFFFFFF 14.05.2006 22:01

Цитата:

Сообщение от Nirth
человек высказал идею...

извините, не заметила идеи...

iNils 14.05.2006 22:07

Цитата:

Сообщение от Белая
извините, не заметила идеи...

Идея в том как заменить рекурсию, а заменить ее можно только зная максимальное (без исключений) число значений.

Marleny 16.05.2006 16:10

Я нашла решение своей задачи. С помощью рекурсии. Всем спасибо, кто помог, вопрос решен, если кому-то интересно, вот алгоритм решения:
Начальный массив элементов: arr1=[1,1,2,2,3,4]
Длина строки: <=N
Формируем массив - элемент которого есть число одинаковых цифр в arr1: arrIndex1=[2,2,1,1]
st1 - строка, в которую накапливаем цифры.
При вызове функции необходимо указывать длину на 1 больше, чем нужно на самом деле

функция Цикл (N, st1, arrIndex1);
var st2:string;
arrIndex2: тип такой же, как arrIndex1;
{ st2=st1;
arrIndex2=arrIndex1;
if (N>1) {
{for (i=1; i<=arrIndex1.length(); i++)
{if (arrIndex1[i]>0)
{arrIndex1[i]--;
st1=st1+i;
вывод st1;
Цикл(N-1, st1, arrIndex1);
st1=st2;
arrIndex1=arrIndex2
}
}
}
}
}

0xFFFFFF 16.05.2006 21:56

Цитата:

Сообщение от Marleny
функция Цикл (N, st1, arrIndex1);
var st2:string;
arrIndex2: тип такой же, как arrIndex1;
{ st2=st1;
arrIndex2=arrIndex1;
if (N>1) {
{for (i=1; i<=arrIndex1.length(); i++)
{if (arrIndex1[i]>0)
{arrIndex1[i]--;
st1=st1+i;
вывод st1;
Цикл(N-1, st1, arrIndex1);
st1=st2;
arrIndex1=arrIndex2
}
}
}
}
}

это на каком языке? :eek:
за русский в коде убила бы..


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

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