|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вернуть рандомную фразу |
|
[решено] Вернуть рандомную фразу
|
![]() Ветеран Сообщения: 553 |
Как вернуть рандомное число извесно, а как вернуть "фразу" из рандомных букв ?
У меня предположение я не пробовал ещё - нужно вернуть рандомное число от 1 до 33 и к каждой цифре приравнять букву из алфавита по порядковому номеру, потом "сумировать" комбинации. Если так то пример ненадо я сам придумаю. Меня интересует есть ли другой способ ![]() |
|
Отправлено: 07:32, 09-07-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата proxy:
|
|
------- Отправлено: 15:50, 09-07-2009 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Так оно работает и без Local $iMin_Rndm = 33, $iMax_Rndm = 255
А если убрать строчку If $iOnly_ASCII Then Dim $iMin_Rndm = 97, $iMax_Rndm = 122 - то получается гинератор крокозябр ![]() |
Отправлено: 15:54, 09-07-2009 | #12 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
чем это: Цитата:
будет отличаться от этого: Цитата:
так? |
|||
------- Отправлено: 15:57, 09-07-2009 | #13 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата FlatX007:
![]() Цитата FlatX007:
Цитата proxy:
|
|||
------- Отправлено: 16:02, 09-07-2009 | #14 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
|
|
------- Отправлено: 16:05, 09-07-2009 | #15 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать proxy,
Из справки: Цитата:
|
|
------- Отправлено: 16:18, 09-07-2009 | #16 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата FlatX007:
![]() Максимально случайным будет только первый вызов Random(), случайность всех последующих вызовов будет существенно ниже – реальная величина зависит от применяемого алгоритма генератора СЧ. Т.к. максимально целое случайное число является 31-разрядным, длина максимально-случайного слова вычисляется формулой 31*ln2/lnN, где N – кол-во букв в алфавите. Для 33 русских букв одного регистра - это слово из 6 букв. Т.е. для максимально случайной фразы мы должны генерировать не по одной букве, а по 6-символьным последовальностям, при этом каждые 5 битов числа будут кодировать одну букву. P.S. вся эта “нудь” имеет смысл только при решении задач типа генераторов паролей, чтобы точно знать РЕАЛЬНУЮ сложность сгенерированного пароля |
|
Отправлено: 16:58, 09-07-2009 | #17 |
![]() Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Нащёт моего примера в шапке я и так знаю
Цитата amel27:
|
|
Отправлено: 19:40, 09-07-2009 | #18 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать FlatX007, можно уменьшить кол-во вызовов Random():
$p = _GetRandomString(10) $e = @extended ConsoleWrite("Password: "& $p &@CRLF) ConsoleWrite("Skipped : "& $e &" chars"&@CRLF) Func _GetRandomString($iLen, $sABC = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_@") Local $iABC = StringLen($sABC), $sOut = "" Local $iBit = Int(Log($iABC)/Log(2)) ; бит на символ Local $iMsk = BitShift(1,-$iBit) -1 ; битовая маска Local $iChr = Int(31/$iBit) ; символов на одно случайное число While 1 $iRnd = Random(1, 0x7FFFFFFF, 1) For $i=1 To $iChr $sOut &= StringMid($sABC, BitAND($iRnd, $iMsk)+1, 1) If StringLen($sOut)>=$iLen Then Return SetError(0, $iABC-$iMsk-1,$sOut) $iRnd = BitShift($iRnd, $iBit) Next WEnd EndFunc |
Последний раз редактировалось amel27, 11-07-2009 в 12:50. Причина: доработка скрипта Отправлено: 02:56, 11-07-2009 | #19 |
Старожил Сообщения: 374
|
Профиль | Отправить PM | Цитировать FlatX007, Есть способ гораздо проще:
|
------- Отправлено: 05:42, 11-07-2009 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Как вернуть экран приветствия | BencX | Microsoft Windows 2000/XP | 22 | 24-01-2015 10:39 | |
Загрузка - [решено] Как вернуть картинку загрузки? | dimx | Microsoft Windows 7 | 25 | 20-12-2010 15:26 | |
Интерфейс - [решено] Вернуть в стандартный вид значки | lolik119 | Microsoft Windows 2000/XP | 4 | 24-07-2009 19:36 | |
[решено] Как вернуть расширение файлу? | vof44ik | Хочу все знать | 8 | 14-06-2009 00:12 | |
[решено] Сжатые файлы:как вернуть | typus | Microsoft Windows 2000/XP | 2 | 10-03-2007 01:26 |
|