|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Сгенерировать перестановки A-Z 0-9, 7 позиций |
|
CMD/BAT - Сгенерировать перестановки A-Z 0-9, 7 позиций
|
Новый участник Сообщения: 7 |
Помогите пожалуйста сгенерировать перестановки с повторениями.
"Слово" из 7 знаков. Знак - буквы латинского алфавита A-Z и числа 0-9 Понимаю, что вариантов будет ооочень много, но хотя бы примерный алгоритм скрипта хотелось бы узнать. Заранее благодарю! |
|
Отправлено: 16:31, 14-02-2017 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать nastasa, Поясните: есть слово из 7 знаков. Эти знаки неизменные? Надо именно из этих 7 знаков путём перестановок получить все возможные сочетания?
|
------- Отправлено: 18:59, 14-02-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
То есть получить все перестановки с повторениями типа ABCDIFG ABCDIFU ABCDIF1 ABCDIF2 и т. д. Очень надо ![]() |
|
Отправлено: 00:34, 15-02-2017 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Почему именно на пакетных файлах? Это не лучший выбор.
|
Отправлено: 15:22, 15-02-2017 | #4 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Цитата Iska:
|
||
Отправлено: 23:45, 16-02-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Вам для каких целей? Один конечный файл с построчными результатами комбинаций займёт чуть больше 352 с половиной Gb.
|
Отправлено: 00:29, 17-02-2017 | #6 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 11:11, 17-02-2017 | #7 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать nastasa,
если вы решили что избретете генератор подбора пароля, то уверяю вас что вы опоздали и это сделано в более удобной правильной и качественной форме, вот только возможно не всем доступно и не всем понятно и НЕ всем нужно. |
Отправлено: 15:11, 17-02-2017 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Elven:
А вот, кстати, я могу быть и не прав, ибо что-то проглядел про: Цитата nastasa:
Цитата nastasa:
![]() |
|||
Отправлено: 17:06, 17-02-2017 | #9 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать nastasa, Я не силён в комбинаторике, поэтому оценить объём выходного файла не берусь.
Я поставил задачу в общем виде: Необходимо сформировать все возможные слова длиной M символов. Набор возможных символов задаётся. Число возможных символов >=M В сформированном слове не должно быть одинаковых символов. Вот VBS-скрипт, реализующий эту постановку. После его запуска дождитесь сообщения, что он отработал
'Sym = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9") Sym = Array("A", "B", "C", "D", "E", "F", "G") ' Набор символов для составления слов M = 7 ' Длина слова File_Out = "Z:\Box_Out\kuku.txt" ' Файл со списком слов (результат работы) NM = M - 1 ReDim iSym(NM) NS = UBound(Sym) For k = 0 To NM iSym(k) = k Next Set FSO = CreateObject("Scripting.FileSystemObject") Set NFile = FSO.OpenTextFile(File_Out, 2, True) Do While iSym(0) <= NS Equ = False For k = 0 To NM For kk = k + 1 To NM Equ = (iSym(k) = iSym(kk)) If Equ Then Exit For Next If Equ Then Exit For Next If Not Equ Then SS = "" For k = 0 To NM SS = SS + Sym(iSym(k)) Next ' MsgBox SS NFile.WriteLine SS End If For k = NM To 0 Step -1 iSym(k) = iSym(k) + 1 If iSym(k) <= NS Then Exit For If k <> 0 Then iSym(k) = 0 Next Loop NFile.Close MsgBox "Скрипт отработал" В приведенном примере длина слова M=7 Взят набор из 7 символов "A", "B", "C", "D", "E", "F", "G" В выходном файле получилось 5040 значений. Для набора из 8 символов "A", "B", "C", "D", "E", "F", "G", "H" и длине слова M=7 в выходном файле получилось 40320 значений. И время выполнения выросло резко. Не знаю, но, по видимому, можно применить более эффективный алгоритм. Вы можете всё это поменять, лишь бы число возможных символов было не менее длины слова - никаких защит от этого я не предусматривал. |
------- Последний раз редактировалось megaloman, 21-02-2017 в 20:31. Отправлено: 20:08, 21-02-2017 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Redhat/Fedora - netperf - сгенерировать траффик на интерфейс | romez777 | Общий по Linux | 0 | 08-01-2015 20:23 | |
Программа для анализа позиций сайтов. Посоветуйте | Centrinar | Вебмастеру | 1 | 03-06-2012 11:39 | |
HP снижает цены на свои ноутбуки для удержания позиций | OSZone News | Новости информационных технологий | 0 | 27-09-2009 18:30 | |
КАк сгенерировать доки? | axax | Вебмастеру | 2 | 04-04-2006 19:49 | |
Сгенерировать новую страничку на лету. | BigMarkus | Вебмастеру | 2 | 20-09-2003 22:45 |
|