Форум программистов, компьютерный форум CyberForum.ru

"Словесная игра" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Удаление файлов из каталогов http://www.cyberforum.ru/cpp-beginners/thread116206.html
Помогите написать программу, которая позволяет удалять из каталога =(( Вот надо сначало создать директорию, а потом удалить какойнибудь файл :( HANDLE CreateFile ( LPCTSTR FileName, // имя файла DWORD Access, // тип доступа к файла DWORD Sharing, // тип разделения файла LPSECURITY_ATTRIBUTES Attrib, // указатель на описатель защиты DWORD CreationDistr,
C++ Умножение двух матриц 1000х1000 Ребят помогите пожалуйста. Надо умножить две матрицы 1000*1000. Обьявил их как int а мне пишет что они слишком большие. http://www.cyberforum.ru/cpp-beginners/thread116199.html
C++ Качественные детали
Добрый день. Помогите мне кто-нибуть с этим заданием: В отдел технического контроля поступило M однотипных деталей цилиндрической формы, диаметры которых D1, D2 ,..., Dm. Деталь, соответствующую норме, должна иметь диаметр C = 3. Из всех деталей необходимо отобрать качественные. Решение вывести в две строки. В первой напечатать текст "Диаметры качественных деталей:", во второй - напечатать...
как написать прогу котороя находит площадь поверхности цилиндра C++
Подскажите как написать прогу котороя находит площадь поверхности цилиндра по радиусу и высоте
C++ Подскажите как решить на С++ http://www.cyberforum.ru/cpp-beginners/thread116137.html
1 Даны натуральное число n, целые числа A0, ..., An-1. Получить сумму положительных и число отрицательных чётных элементов последовательности A0, ..., An-1 2 Дан массив действительных чисел A. Получить новый массив D={A1*A16, A2*A17, A3*A18, ..., A15*A30} 3 Заданы двумерный массив 5х5 и число К. Разделить элементы К-й строки на диагональный элемент, расположенный в данной строке. 4 Дан...
C++ C++ и STL (раскритикуйте мою первую прогу) Много всего делал на си а вот на С++ кроме калькулятора в Builder ничего. Вот написал такую прогу, которая анализирут текстовый файл и выдает информацию какое слово сколько раз встречается в тесте. Принцип следующий - обявляется Dictionary в котором "массив", "индексы" которого это слова, а значения - это как часто они встречаются в тексте. В конце этот "массив" печатается. Алгоритм вычитан в... подробнее

Показать сообщение отдельно
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
20.04.2010, 16:28     "Словесная игра"
valeriikozlov,
Хи, и правда... А я вроде всё проверил, обрадовался))) Есть какой-то другой способ? Алгоритмический?

Добавлено через 19 минут
А если так: делаем инкремент для чисел с 1 по N, а затем удаляем из полученного набора все вхождения чисел, в которых на каком-либо разряде стоит цифра больше N (или же 0)? Единственная загвоздка: для 7 введённых букв придётся хранить 7654321 чисел...

Добавлено через 4 минуты
Тогда можно делать, как я предлагал раньше, ищем следующую комбинацию, проверяем её на правильность (ищем разряды, большие N или нулевые), и сразу выполняем процедуру поиска. Ну или можно искать комбинацию, проверять её на правильность, а уже потом записывать в наш список комбинаций... Правда так всё равно будет куча операций прибавления единицы, но зато просто и зходу найдутся все возможные варианты перестановок не только с данным количеством разрядов, но и с меньшим... И никакой рекурсии)))

Добавлено через 14 минут
Вот, вроде придумал алгоритм...
Берём выборку для одной цифры. Скажем мы ввели три буквы. получили число 123. Возьмём выборку:

1
2
3

Далее для каждой найденной выборки добавляем один младший разряд и в него записываем каждую недостающую цифру. Взяли 1. Недостающие цифры - 2 и 3. получили

12
13

Так же поступаем с остальными. Недостающий цифры для 2 - 1 и 3, для 3 - 1 и 2. Распишем:

21
23

31
32

Далее в каждой найденной выборке предыдущего шага (т.е. из двух, в данном случае, цифр) добавляем ещё разряд и в него записываем недостающие цифры для каждой пары (например для 23 недостающая цифра - 1, для 31 - 2 и т.д.). Получаем:

123
132
213
231
312
321

Всё, перебрали все варианты - выходим (как критерий можно использовать то, что изначальное расположение цифр 123, а конечно всегда будет перевёрнутым - 321. Только что ради эксперимента расписал для четырёх цифр - получилось 64 комбинации). Думаю, это надо рекурсивно реализовать...

Добавлено через 42 минуты
Кстати, для 7 цифр число размещений будет равно 13699... Нехило, а?)))

Добавлено через 16 часов 32 минуты
Так, научился считать все перестановки N цифр... Теперь надо придумать, как считать перестановки для N-1 цифр... Есть идея у всех перестановок предыдущего ((K-1)-го) шага отсекать последний разряд и для каждого получившегося набора рекурсивно запускать функцию перестановки. Для каждой найденной перестановки проверять, нет ли уже такой перестановки в нашем массиве перестановок, если нет - записывать туда найденный набор, если есть - искать следующую перестановку...
Правда поиск уже для 5 разрядов визуально заметен, а для 7 занимает (на глаз) 2,5 - 3 секунды...
 
Текущее время: 14:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru