0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 1
|
|
1 | |
Перебор элементов с параметрами из массива26.01.2015, 19:26. Показов 1583. Ответов 4
Метки нет Все метки)
(
Есть файл с данными. 54 строки. В каждой строке 64 символа. (0..9,a..z,A..Z). Нужно прочитать файл в массив (в 1d или 2D, не знаю в какой лучше, думаю 2D). Собственно необходимо получить различные варианты 55 строки по 3 параметрам:
1.Каждый элемент по своему месту в строке не должен повторяться с этим же местом в предыдущий строках Думаю сравнивать каждый Mi,j c Mi,j=0..54 2.Один и тот же элемент не может повторяться более двух раз подряд в строке (типа Mi,j=Mi-1,j) 3.Один и тот же элемент не может повторяться более 5 раз за всю строку. Неужели нужно вводить счетчик на каждый тип символа и считать его для правильного конечно результата? И как собственно организовать перебор значений для получения строки в 64 символа?(множества строк) Или вообще бросить эту задачу, поскольку считать он у меня будет годами?
0
|
|
26.01.2015, 19:26 | |
Ответы с готовыми решениями:
4
Перебор всех нечетных элементов массива х из 99 элементов
Перебор элементов массива Перебор элементов массива |
1 / 1 / 1
Регистрация: 07.10.2013
Сообщений: 13
|
|
27.01.2015, 09:31 | 2 |
Общая идея.
1) Читаем файл в массив.A(64,54). i - номер элемента в строке, j - номер строки. 2) В отдельной переменной создаем строку STR всех возможных элементов (0..9,a..z,A..Z). 3) В массив B(64,1) в каждую ячейку сохраняем STR, минус A(i,j), где i - номер текущй ячейки в B, а j - изменяется от 1 до 54. 4) В массиве B мы получили все возможные значения для каждого символо искомых строк. Используя рекурсивную функцию или цикл, мы можем получить все возможные строки, путем добавления к каждому символу ячейки B(X) все символы ячеек B(X+1) (не одновременно, естсественно), учитывая ограничения №2 и 3.
0
|
![]() 2385 / 1297 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
|
||||||
27.01.2015, 10:51 | 3 | |||||
как вариант, окончания дожидаться не стал...
1
|
1 / 1 / 1
Регистрация: 07.10.2013
Сообщений: 13
|
||||||
27.01.2015, 11:46 | 4 | |||||
Таки написал код.
Текущая версия для семи строк и символов: '0'-'9'. Константа lines - число строк в файле. Константа chars - число возможных символов. В процедуре GetAvailableSymbols можно изменять алфавит (возможные символы). Выделил красным.
0
|
![]() 2385 / 1297 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
|
|
27.01.2015, 13:35 | 5 |
Lethal Ghost, а Вы, простите, на каком языке писали?
по Вашему примеру, получается строка результирующая - 14 символов, а входящая 10 - как задать алфавит в Вашей процедуре согласно условию (0..9,a..z,A..Z)? Добавлено через 3 минуты и нет проверки на условия 2 и 3
0
|
27.01.2015, 13:35 | |
Помогаю со студенческими работами здесь
5
Перебор элементов массива Перебор элементов массива Задача с параметрами и без параметров. Из массива удалить элементы, меньшие ср. арифметического четных элементов массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |