Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вернуть рандомную фразу

Ответить
Настройки темы
[решено] Вернуть рандомную фразу

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Как вернуть рандомное число извесно, а как вернуть "фразу" из рандомных букв ?

У меня предположение я не пробовал ещё - нужно вернуть рандомное число от 1 до 33 и к каждой цифре приравнять букву из алфавита по порядковому номеру, потом "сумировать" комбинации. Если так то пример ненадо я сам придумаю.

Меня интересует есть ли другой способ

Отправлено: 07:32, 09-07-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
работает в обеих версиях если заменить "ulong_ptr" на "long" (или на "ptr"). Но насколько оно будет надёжно? »
AFAIK "ulong_ptr" отличается от "ulong" только автоматичеким определением разрядности - для переносимости кода между 32 и 64-битным AutoIT... мне почему-то кажется, что одного этого маловато будет, на 64-бит пока не тестил...

Цитата Creat0R:
таким же методом, можно сделать UDF-аналог на Random(), т.е чтобы более надёжно возвращать случайное число? »
да можно конечно... но ИМХО в такой замене нет нужды: назначение штатного генератора обычно совсем другое - моделирование, тестирование и отладка - в этом случае его предсказуемость и воспроизводимость как нельзя кстати, при "сбое" всегда можно "перезапустить" случайную последовательность и отловить баг... Потому я и говорю о странном позиционировании Random() в AutoIT, надо-то всего ничего - добавить один необязательный параметр для инициализации генератора.

математик из меня никудышный... вроде похоже на правду:
Код: Выделить весь код
For $i=1 To 1000
    ConsoleWrite(_Random() &@CRLF)
Next

Func _Random($iMin=0, $iMax=1, $iFlag=0)
    Local $bBIN, $iOut
    Local $tMAX = DllStructCreate("uint")
    Local $tBIN = DllStructCreate("byte[4];byte[4]")
    Local $tRND = DllStructCreate("uint64", DllStructGetPtr($tBIN))
    Do
        $bBIN = _Crypto_GetRandomBinary(4)
    Until ($bBIN<>Binary(0)) And ($bBIN<>Binary(-1))

    DllStructSetData($tBIN, 1, $bBIN)
    DllStructSetData($tMAX, 1, 0xFFFFFFFF)

    If $iFlag=0 Then $iOut = DllStructGetData($tRND,1)*($iMax-$iMin)/DllStructGetData($tMAX,1)
    If $iFlag   Then $iOut = Int(DllStructGetData($tRND,1)*($iMax-$iMin+1)/DllStructGetData($tMAX,1))

    Return $iOut + $iMin
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:08, 13-07-2009 | #31



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата amel27:
в этом случае его предсказуемость и воспроизводимость как нельзя кстати, при "сбое" всегда можно "перезапустить" случайную последовательность и отловить баг... »
Random() можно использовать в качестве отладчика багов? это для меня что-то новое, можно подробнее плиз?

Цитата amel27:
надо-то всего ничего - добавить один необязательный параметр для инициализации генератора. »
Может на этот счёть запостить Feature Request?

Цитата amel27:
математик из меня никудышный... вроде похоже на правду »
Ага, мне бы таким никудышным математиком стать

Спасибо за _Random().

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 23:22, 13-07-2009 | #32


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
можно подробнее плиз? »
не в качестве отладчика, а при отладке... навскидку два варианта:

- на время тестирования кода, использующего криптоалгоритмы, можно заменить случайный генератор на псевдослучайный, т.к. последний работает во много раз быстрее;

- проверка устойчивости форм ввода (Web, GUI) к всевозможным "неправильным" данным - когда нет возможности перебрать ВСЕ возможные комбинации, можно сгенерировать последовательность случайных ... т.е. проверка способности входных регулярных выражений фильтовать "спам";

- вообще, во всех случаях, где НЕ нужна криптостойкость, но нужны скорость/воспроизводимость

Цитата Creat0R:
Может на этот счёть запостить Feature Request? »
подумаю... надо же еще предложить как оформить... хотя, если ты проникся необходимостью, можешь и сам отправить (меня английский грузит)... для сравнения: в VB случайная последовательность инициализируется Randomize(), а само число возвращается ф-цией RND()

Цитата Creat0R:
Спасибо за _Random() »
спасибо FlatX007 за хороший вопрос
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:25, 14-07-2009 | #33



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вернуть рандомную фразу

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Как вернуть экран приветствия 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




 
Переход