1. Мне нужна эта функция, константы не подходят - значения меняются, но изредка.
Если их можно изменить в режиме разработки, то никто не мешает изменить их и перекомпилировать код.
Если можно изменить только в рантайме, то хотя бы глобальные переменные. Но никак не то что ты сделал.
2. Функция уже не обычная, обычная -- это обычное RND. И класс - это не единственная причина создавать статичную функцию. Здесь значение нужно, а насчет Dir - согласен, что не удобно, но можно и циклом
Это самое обычное RND, в MSDN даже пример есть такой, как выбрать произвольное число из диапазона, код 1:1, не считая твоих понтовых наворотов.
3. Действительно дельно: если вдруг одновременно эту функцию будут вызывать 2 источника, может выйти неприятность, но если в программе имеется такая вероятность, то можно вызывать границы: их никто не запрещал в моей функции.
Если есть минимальная вероятность того что это поизойдет или того, что когда-нибудь кто-нибудь седлает так, что это сможет произойти то грош цена этому твоему навороту.
Вообще, такая ситуация гораздо более реальна чем ты себе можешь представить.
4. Да лучше написать границы один раз, если вся программа работает с одинаковым диапозоном чисел.
Если твоя прогармма работает с разными диапазонами чисел, то указывай каждый раз этот диапазон!
Возможно, сейчас тебе это может казаться очень красивым и оригинальным решением, но можешь мне поверить при более обширом взгляде это только увеличивает хаотичность кода.
Настоящее искусство прогарммирования - это не грязные хаки, оптимизация под компиляторы, и прочие вещи, а чистый, красивый, понятный код
2 Sharp
Насчет RND, зачем ей статичные переменные? Всегда хотелось узнать, как работают задатчики случайных чисел...
2 Brand
Можно подумать, что я упорно настаиваю, заставляю тебя пользоваться моей функцией, наводнять ей твой код...
МОЙ КОД ОНА НЕ ПОРТИТ, и сколько не трудись, в обратном ты меня не убедишь - мне это действительно кажется красивым и оригинальным (ну, не очень оригинальным) решением!
Настоящее искусство прогарммирования - это не грязные хаки, оптимизация под компиляторы, и прочие вещи, а чистый, красивый, понятный код
Ага, так и есть, я то же так считаю, только не вижу причины, полагать Rnd2 злостным врагом этого утверждения.
Просьба не припоминать мне участие в теме "Ctrl+Alt+Del и как с этим бороться" и "Пошутим с пользователем" ну или как-то так они назывались...
Можно подумать, что я упорно настаиваю, заставляю тебя пользоваться моей функцией, наводнять ей твой код...
Если б настаивал, я б очень на тебя разозлился
В моем коде такой функции в прнципе не может появиться.
МОЙ КОД ОНА НЕ ПОРТИТ, и сколько не трудись, в обратном ты меня не убедишь - мне это действительно кажется красивым и оригинальным (ну, не очень оригинальным) решением!
Можешь мне поверить, код этот понт портит.
Это напоминает мне рассказы о молодых неопытных архитекторах
Ну вот придумал архитектор какой-нибудь финт, причем такого ни у кого нет! И давай его лепить направо и налево - а че, круто ведь, классно смотрится.
Ему совершенно наплевать, как на этот финт посмотрят остальные, сколько с ним потом прийдется намучиться другим, и совершенно плевать на многолетний опыт професиональных архитекторов
Просьба не припоминать мне участие в теме "Ctrl+Alt+Del и как с этим бороться" и "Пошутим с пользователем" ну или как-то так они назывались...
Просьба не припоминать мне участие в темах "ээээээ" и "Давайте напишем игру Жизнь взломщика"
Как Генератор СЧ сделать на VB? Буду признателен за совет.
Скажи честно, нафиг тебе генератор случаных чисел на VB? Я согласен, что этА крутА - иметь в программе свой собственный генератор чисел, но более случайным чем RND он ни на миллиметр не станет (наоборот - гораздо больше вероятность что он будет генерировать более предсказуемые числа)
Если хочешь более случайных чисел, то надо использовать функции CryptoAPI, но я очень сомневаюсь что у тебя есть реальная необходимость в такой случайности...
Теория, мой друг, суха. А древо жизни пышно зеленеет (с)
Просьба не припоминать мне участие в темах "ээээээ"
Зря напомнил
но более случайным чем RND он ни на миллиметр не станет (наоборот - гораздо больше вероятность что он будет генерировать более предсказуемые числа)
Вранье, вбшный RND - страшно тупой генератор. Любой генератор из Кнута лучше, а уж нормальные, которые считывают положение мыши и содержимое памяти - в тысячи раз лучше. У последних CryptoAPI, кстати, тоже сосет, если, конечно, делать все как надо. Вспомни WebMoney - там ключевой файл генерится серьезным ГСЧ.
Нет, блин, не поверю! >Уже говорил и возвращаться к этому не стану! Я не архитектор, не разработчик MSOffice, и меня такой вопрос не заботит, так же как и твоя манера писать и читать код.
Про темы: кто помнит "Кто считает.. загляни сюда"?2 Sharp
Так, а что это за функции func1 и func2? Хотя идею начал понимать: дело в сканировании памяти и координатах курсора, часах, кол-ве секунд с полунучи и т.п.?
Нет, блин, не поверю! >Уже говорил и возвращаться к этому не стану! Я не архитектор, не разработчик MSOffice, и меня такой вопрос не заботит, так же как и твоя манера писать и читать код.
Ладно, ты безнадежен, не буду время тратить.
Так, а что это за функции func1 и func2? Хотя идею начал понимать: дело в сканировании памяти и координатах курсора, часах, кол-ве секунд с полунучи и т.п.?
Нет, все намного банальнее, элементарная математическая функция типа той которую Sharp показывал, каждый раз генерируется одна и та же последовательность (если перед этим не сместить генератор в какую-нибудь позицию).
Чтоб сканирование памяти и прочая фантастика, надо CryptoAPI использовать, список параметров состояния системы, которые используются при генерации случайных данных не вмещается на книжной страничке мелким шрифтом.
Я давно уже предлагал закончить обсуждение изысков
Так, сэнкс, кое-что ясно, но где же взять номер случайной позиции? Ведь он то же случайный? А идея смешивать температуру процессора на текущий размер буфера обмена и делить на номер дня в году куда интереснее... Надо будет попробовать...
Я давно уже предлагал закончить обсуждение изысков
А я уже и не обсуждаю, успокойся.
Так, сэнкс, кое-что ясно, но где же взять номер случайной позиции?
Классический пример - Randomize.
Если не ошибаюсь, если вызываешь его без параметров, то но инициализирует позицию генератора таймером.
Если в .NET используешь класс Random с конструктором по умолчанию, то он инициализирует себя сам.
А идея смешивать температуру процессора на текущий размер буфера обмена и делить на номер дня в году куда интереснее...
Опять хочешь сделать самый правильный молоток?
Ты просто из принципе не хочешь использовать то, что я говорю?
Лучшие специалисты по безопасности из Microsoft советуют для генерации произвольных данных использовать CryptoAPI, а тебе опять температура процессора и номер дня в году...
Блин, куда котится мир...
А func - что-то типа a * 89364623 + 32463764, что, разумеется, считается по модулю 2^32
Чтоб сканирование памяти и прочая фантастика, надо CryptoAPI использовать, список параметров состояния системы, которые используются при генерации случайных данных не вмещается на книжной страничке мелким шрифтом.
Вранье, CryptoAPI привязывается к одному-двум параметрам системы, из которых самый непредсказуемый - значение RDTSC.
Лучшие специалисты по безопасности из Microsoft советуют для генерации произвольных данных использовать CryptoAPI, а тебе опять температура процессора и номер дня в году...
Эти же специалисты оставляют в коде идиотские дыры, наподобие RPC DCOM, LSASS, уязвимостей в tcpip.sys и srv.sys, дырки в обработке файлов BMP, WMF и бездну других. Слова "специалистов по безопасности" из Microsoft вообще не должны ничего значить после этого
И поэтому нормальные программы типа WebMoney, GPG, и т.п. юзают куда более серьезные алгоритмы. Хотя если тебе такая секьюрность ни к чему, можешь не париться и в самом деле юзать CryptoAPI