Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перебор массива, исследование операций 
:(
    Опции темы
Remember
Дата 10.5.2008, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: 1
Всего: 1



Вообщем проблема такая.. 
есть массив.. нужно поочередно перебрать все возможные варианты.. его индексов.. 
массив одномерный.. то есть например для массива размером 1*2 
ar[1]
ar[2]
  и
ar[2]
ar[1]

как это сделать.. для произвольного массива размерностью 1*n.

Решаю задачу оптимизационную.. метод ветвей и границ не предлагать smile.. не катит он здесь..

Да и ещё.. может кто подскажет.. как генерировать строку не повторяющихся символов из заранее выбранного множества символов. Вопрос в тему.. ибо думаю.. что 1*n много, можно попробовать случайным образом 5-6 выборок брать.

Это сообщение отредактировал(а) Remember - 10.5.2008, 21:09
PM MAIL   Вверх
CheFF
Дата 10.5.2008, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Может я не очень понял смысла вопроса, но можно же сделать вот так:
Код

foreach (stringt o in ar)
            {
                MessageBox.Show(o.ToString());   
            }


PM MAIL   Вверх
Rififi
Дата 11.5.2008, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



как это сделать.. для произвольного массива размерностью 1*n.
перестановкой.
http://www.interact-sw.co.uk/iangblog/2004/09/16/permuterate
PM MAIL   Вверх
Remember
Дата 11.5.2008, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: 1
Всего: 1



Цитата(CheFF @ 10.5.2008,  20:46)
Может я не очень понял смысла вопроса, но можно же сделать вот так:
Код

foreach (stringt o in ar)
            {
                MessageBox.Show(o.ToString());   
            }

Не правильно понял.. перебрать все варианты индексов, а не просто перебрать массив..
Но всё равно спасибо...
PM MAIL   Вверх
vponomarov
Дата 11.5.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 2
Всего: 12



Цитата(Remember @  10.5.2008,  21:06 Найти цитируемый пост)
Да и ещё.. может кто подскажет.. как генерировать строку не повторяющихся символов из заранее выбранного множества символов. 

первое, что пришло в голову smile 
Код

            Random rnd = new Random();
            string res = "";
            List<char> smbls = new List<char>();
            for (int i = 0; i < 10; ++i)
            {
                int tmp = rnd.Next(0, smbls.Count);
                res+=smbls[tmp];
                smbls.RemoveAt(tmp);
            }



--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
Remember
Дата 11.5.2008, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: 1
Всего: 1



Цитата(vponomarov @ 11.5.2008,  19:04)
Цитата(Remember @  10.5.2008,  21:06 Найти цитируемый пост)
Да и ещё.. может кто подскажет.. как генерировать строку не повторяющихся символов из заранее выбранного множества символов. 

первое, что пришло в голову smile 
Код

            Random rnd = new Random();
            string res = "";
            List<char> smbls = new List<char>();
            for (int i = 0; i < 10; ++i)
            {
                int tmp = rnd.Next(0, smbls.Count);
                res+=smbls[tmp];
                smbls.RemoveAt(tmp);
            }

А насчет этого я уже разобрался.. похожим но всё-таки другим методом...

Остается вопрос о полном переборе вариантов...
PM MAIL   Вверх
Remember
Дата 17.5.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: 1
Всего: 1



Народ, может кто знает.. всё-таки как перебрать индексы массива??
PM MAIL   Вверх
jonie
Дата 18.5.2008, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 6
Всего: 118



Цитата

как генерировать строку не повторяющихся символов из заранее выбранного множества символов.

Код

char[] arr = {'1','2'.........'n'};  //все символы не повторяются (алфавит алгоритма)
string s;
for(int i=0;i<нужное_количество_но_не_более_arr.Length;++i)
{
  s.Append(arr[i]);
}

вот точно неповторяющихся) быстрее не придумаешь.

Цитата

Народ, может кто знает.. всё-таки как перебрать индексы массива??
не, ну нельзя так неуважать математику)
http://algolist.manual.ru/maths/combinat/index.php


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Remember
Дата 18.5.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 63
Регистрация: 25.2.2007
Где: Самара

Репутация: 1
Всего: 1



Спасибо, большое... что-то я не сообразил :/
Closed
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1252 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.