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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сформировать последовательность 
:(
    Опции темы
Relrin
Дата 14.3.2013, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Необходимо сформировать неповторяющуюся последовательность из цифр, которые позволяют расписать представление числа в двоичном виде. Например, число 16 можно описать 4 битами, а 7 - тремя. 

Мне это необходимо что перемножить между собой определенные строки в матрице.

Например вот так дожно получится если числа можно описать 4мя битами. 
1
2
3
4
12
13
14
23
24
34
123
124
134
234
1234

для трех битов, характерезующих число:
1
2
3
12
13
23
PM MAIL   Вверх
phomm
Дата 14.3.2013, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Может поможет, алгоритм понять думаю можно, хоть и на дельфи.
http://programmersforum.ru/showthread.php?t=138096
PM MAIL WWW ICQ Skype   Вверх
Relrin
Дата 14.3.2013, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Моя попытка сделать. Нужна помощь в доработке
Код

        List<string> gen = getList(4, 12);  // для примера
        ....
        // numbers - сколькими битами описано число в двоичной системе
        // set - сколько чисел из цифр в 10ой системе счисление надо получить
        private List<string> getList(int numbers, int set)
        {
            // сформируем последовательность из двух символов, а на основе этого - дальше, если необходимо
            List<string> result= new List<string>();
            for (int i = 1; i <= numbers; i++)
            {
                for (int j = 1; j <= numbers; j++)
                {
                    if (i != j)
                    {
                        string str1 = i.ToString() + j.ToString();
                        string str2 = j.ToString() + i.ToString();
                        if (!result.Contains(str1) && !result.Contains(str2)) result.Add(str1);
                    }
                }
            }
            // если нужно еще сгенерить, т.к. чисел с двумя цифрами мало
            while(result.Count<=set)
            {
                for(int i = 0; i < result.Count; i++)
                {
                    for(int j=1; j<=numbers; j++)
                        // ВОТ ТУТ (2ой пункт) нужно разобрать получше, как это сделать:
                        // 1) проверить есть такие уже числа
                        // 2) полученная "строка" - это не какое-нибудь похожее число (например 123==132, и 132 не добавляем) 
                        if (!result.Contains(result[i]+j.ToString()) && !result[i].Contains(j.ToString()))
                        {
                            string elem = result[i] + j.ToString();
                            result.Add(elem);
                        }
                } 
            }
            return result;
        }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

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


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

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


 




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


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

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