|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.01.2011, 17:14 | #1 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Комбинаторика. Получение возможных вариантов.
Предположим есть некоторое число в String, например 8907. Необходимо получить все возможные комбинации цифр числа, находящиеся по-порядку. Поясню, для числа 123 это будет:
Код:
Есть более простое решение?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
16.01.2011, 11:11 | #2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Тебе нужны именно сами варианты или их количество?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
16.01.2011, 11:43 | #3 | |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Цитата:
Значицца так - что уже сделал. С помощью Goodwin`а создал маленькую функу на асме по проверке разряда бита. На скорость проверки сейчас не смотрю - по миллиону лет на 32 разряда. Основная проблема сейчас в другом - больше 32 символов на входе банально не поддерживается (хотя я представляю, сколько времени будут считаться 2 млрд вариантов в 32-х символах). В общем проблемы сейчас 3 - 1) Скорость вычислений. Код:
2) Проблема Билла Гейтса ("640 килобайт хватит всем") - больше 32-х разрядо не поддерживаются. Либо делать как то поддержку 64-х разрядов, либо менять всю логику. 3) Фиг его знает, почему, но Код:
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
|
16.01.2011, 13:52 | #4 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
Не знаю, зачем вам это безумие, но вот консольная программка, которая генерит все комбинации. Количество бит сейчас максимум 128, но можно расширить при желании до скольки угодно.
Основное время тратится на запись в файл, если убрать FileWrite() из yield(), генерит примерно миллион комбинаций в секунду. Да, если задать число разрядов (c_max_chars) больше 84, прогресс будет выводиться неверно, лень исправлять. По-хорошему, конечно, нужно раскидать весь диапазон на ядра проца, чтобы не простаивали зря, но это уже не бесплатно ) Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Комбинаторика | MadReason | Помощь студентам | 4 | 09.12.2010 22:52 |
Перебор всех возможных вариантов | phenix | Помощь студентам | 3 | 03.12.2010 21:29 |
сортировка данных (пересчет возможных вариантов комбинаций, перенос данных в таблицу) | Vitalik85 | Microsoft Office Excel | 4 | 12.08.2009 00:30 |
Перебор всех возможных вариантов | [MI_nor] | Общие вопросы C/C++ | 9 | 01.04.2009 21:17 |