Модераторы: bsa
  

Поиск:

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


Новичок



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

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



Использую С++
если подкинете пример кода а не алгоритм то будет ещё лучше.
Есть массив
Код
char model[] = "1234567";

(в массиве могут быть не только цифры, они приведены для примера )
а так же массив
Код
char test[7];

в нескольких циклах я перебираю через индекс 2 массива все элементы 1 массива тоесть
зарание указанно
Код
temp[0] = model[0];
temp[1] = model[0];
temp[2] = model[0];
temp[3] = model[0];

и в условие цикла указанно что как только первый элемент 2 массива полностью по очереди пройдет все элементы 1 массива то 2 элемент увеличивается на один элемент, а когда второй элемент дойдет до последнего элемента 1 массива на один элемент увеличивается значение 3 элемента ну вообщем вот чт получается
Код
1111
2111
3111
4111
5111
6111
7111
1211
2211
...
7211
1311
2311
...
7311
1411
...
1511
...
7511
...
1611
2611
...
7711
1121
2121
...
4771
5771
6771
7771
1112
2112
3112
4112

и так далее.

как вы понимаете что каждая комбинация цифр есть определённый номер 
то есть к примеру у получившейся комбинации 1111  будет под номером 1
2111 под номером 2 а у строчки 1211 номер 8 и так далее,
но вот помогите придумать алгоритм при котором можно будет определить какая комбинация будет например под номером 300, но при этом не проходя все циклы?
То есть можно ли как то зная все параметры к используемые в цикле высчитать что получится на определенной строчке? (то есть как узнать что на 300 строчке будет комбинация 6171 при моих условиях циклов не проходя все мои циклы?) Если можно то как? 
(Если поможете примером кода буду очень благодарен)
Заранее извиняюсь если вопрос глупый или плохо объяснил чего хочу...
PM MAIL   Вверх
Фантом
Дата 15.1.2011, 01:39 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


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

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



Фактически это действительно номер, но выраженный в системе счисления, основанием которой служит длина массива model, и записанный в обратном порядке. Так что алгоритм сводится к переводу номера в эту систему счисления и замене цифр в этом номере на символы из массива model с соответствующими индексами.
PM   Вверх
sQu1rr
Дата 15.1.2011, 01:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Туплю не прочитал до конца... точнее с начала.

Фантом уже написа правильный вариант

Это сообщение отредактировал(а) sQu1rr - 15.1.2011, 01:41
PM MAIL Skype GTalk   Вверх
mes
Дата 15.1.2011, 01:41 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



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

Добавлено через 29 секунд
опередили smile


--------------------
PM MAIL WWW   Вверх
LoKKi625
Дата 15.1.2011, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Если вам не сложно, не могли бы вы привести пример кода?
PM MAIL   Вверх
LoKKi625
Дата 15.1.2011, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



помогите не большим примером кода, пол ночи пытался сделать ничего так и не получилось:(
PM MAIL   Вверх
xvr
Дата 17.1.2011, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Код

void convert(int v)
{
 int N=strlen(model);
 for(int i=0;i<sizeof(test);++i)
  {
    test[i]=model[v%N];
    v/=N;
  }
}



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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