Аннотация Псевдослучайные числа широко используются при разработке компьютерного программного обеспечения. В этой статье представлены общие принципы генерации псевдослучайных чисел, а также использование класса Random и его методов, предусмотренных в ASP.NET Framework, для генерации случайных чисел в различных диапазонах, отвечающих различным требованиям. Наконец, в сочетании с формой веб-управления объясняется применение случайных чисел в ASP.NET при разработке программного обеспечения.
Ключевые слова: ASP.NET; генерация псевдослучайных чисел; Интернет; случайные
числа широко используются в разработке программного обеспечения, особенно в области практического моделирования и тестирования. Чтобы получить действительно случайные последовательности, люди использовали множество примитивных физических методов для создания равномерно распределенных последовательностей, которые соответствуют точности (количеству битов) в определенном диапазоне. Их недостатками являются: низкая скорость, низкая эффективность, необходимость большого объема памяти. пространство и быть недоступным снова и т. д. Чтобы удовлетворить потребности исследований в области компьютерного моделирования, люди обращаются к исследованиям по использованию алгоритмов для генерации псевдослучайных последовательностей, которые моделируют различные распределения вероятностей. Псевдослучайные числа относятся к случайным числам, генерируемым формулами математической рекурсии. С практической точки зрения самый простой и естественный способ получить такие числа — использовать генератор случайных чисел, предоставляемый библиотекой компьютерного языка. Различные среды разработки предоставляют разные функции и методы генерации случайных чисел. Обычно он выводит псевдослучайную переменную, значения которой равномерно распределены между 0 и 1.
Генератор случайных чисел — это
метод генерации случайных чисел на компьютере, часто использующий следующую формулу:
Программа, использующая эту формулу для генерации последовательности случайных чисел a1, a2,... от 0 до 65536, называется 232-шаговым мультипликативным гармоническим генератором случайных чисел. Среди них b, c и d являются целыми положительными числами, а d называется начальным числом случайной последовательности, генерируемой формулой.
Из этой формулы видно, что после определения параметров b, c и d также определяется генерируемая случайная последовательность. Эта последовательность, которая лишь в определенной степени удовлетворяет случайности, называется псевдослучайным числом.
Ниже приведен пример генератора случайных чисел. Среди них функция random_seed позволяет пользователю выбирать начальное число случайного числа. Когда формальный параметр d=0, текущее время системы используется в качестве начального числа случайного числа, когда d≠0, d выбрано в качестве начального числа. семя; функция random основана на заданном семени, вычисляет новое семя и генерирует новое случайное число в диапазоне от низкого до высокого.
#define MULTIPLIER 0x015A4E35L
#define INCREMENT 1
void random_seed(unsigned long d){
если (d == 0) семя = время (0);
иначе семя = d;}
unsigned int random (беззнаковый длинный низкий уровень, беззнаковый длинный высокий уровень)
{
семя = МНОЖИТЕЛЬ * семя + ПРИРАЩЕНИЕ;
возврат ((seed>>16)% (высокий-низкий) + низкий);
}
}
Механизм генерации псевдослучайных чисел в ASP.NET
не позволяет компьютеру генерировать полностью случайные числа. Так называемый генератор случайных чисел использует определенный алгоритм для выполнения сложных операций над заранее выбранными случайными числами и использует сгенерированные результаты для приблизительной имитации полностью случайных чисел. Этот вид случайных чисел называется псевдослучайным числом. Псевдослучайные числа выбираются из конечного набора чисел с равной вероятностью. Выбранные числа не являются полностью случайными, но они достаточно случайны для практических целей.
1. Встроенные функции VB.NET.
Программы ASP.NET могут использовать различные языки программирования. Языком программирования по умолчанию является VB.NET. Хотя VB.NET и VB в чем-то похожи, их среды применения и методы написания различаются. коды тоже разные. В VB.NET, если вы хотите использовать математические функции, вы должны передать класс Math, предоставляемый .NET Framework, который расположен в пространстве имен System. Чтобы использовать их, пользователи могут добавить Imports System в верхней части кода. математические функции.
Прототипом функции, используемой для генерации случайных чисел, является: Rnd(x). Эта функция используется для генерации случайного числа одинарной точности от 0 до 1. x — начальное число для генерации случайных чисел. Если вы хотите случайным образом выбрать число из диапазона (мин, макс), вам нужно использовать формулу: случайное число = (макс - мин) * Rnd(x) + мин.
Выбор псевдослучайных чисел начинается со случайных начальных чисел. Чтобы гарантировать, что псевдослучайные числа, получаемые каждый раз, являются достаточно «случайными», выбор случайных начальных чисел очень важен. Если выбранные случайные начальные числа одинаковы, сгенерированные случайные последовательности также будут одинаковыми. Обычно параметры, связанные с системным временем, используются в качестве случайных начальных значений, что также является методом по умолчанию, используемым генератором случайных чисел в .net Framework.
2. Класс случайных чисел System.Random
Класс случайных чисел Класс System.Random предоставляет следующие методы для генерации различных случайных чисел, отвечающих различным требованиям, как показано в таблице 1:
Таблица 1 Различные методы, предоставляемые классом System.Random
серийный номер | имя метода | Описание функции |
1 | Следующий() | Возвращает целое число от 0 до 2147483647. |
2 | Следующий(я) | Возвращает целое число от 0 до i |
3 | Следующий(я,j) | Вернуть целое число между i~j |
4 | Следующийдабл() | Возвращает случайное десятичное число от 0 до 1. |
5 | Следующийдабл(байт()) | Используйте случайное целое число от 0 до 255 в качестве значения каждого элемента массива байтов. |
Использование класса случайных чисел System.Random должно быть объявлено первым. Если вы хотите использовать метод Nextbytes(byte()), вам также необходимо объявить массив байтов перед его использованием.
3. При написании тестовой программы
необходимо создать среду разработки и выполнения перед запуском программы ASP.NET, включая настройку Microsoft IIS и установку .NET Framework SDK и машинного редактора MSE. Редактор MSE является дополнительным программным обеспечением для Microsoft Office и очень удобен в качестве инструмента редактирования для ASP.NET. Код тестовой программы выглядит следующим образом:
<script Language="vb" runat="server">
sub page_load(отправить как объект,e как eventargs)
dim r1 как случайное = новое случайное()
response.write("Результат r1.next():"+r1.next().tostring())
response.write("Результат fr1.next(100)is:" +r1.next(100).tostring())
response.write("Результат r1.next(100,150):"+r1.next(100,150).tostring())
response.write("Результат r1.nextdouble():"+r1.nextdouble().tostring())
r1.nextbytes(r) // уменьшить r(300) как байт
response.write("r(100) это:")
ответ.write(r(199))
end sub </script>
Результаты теста показаны на рисунке 1:
Рис. 1. Результаты выполнения теста псевдослучайных чисел.
Пример
анализа требований к приложению для разработки: Создайте приложение для моделирования игры в кости. В этой игре игроки случайным образом бросают кубик. Каждый кубик имеет шесть сторон, представляющих шесть очков: 1, 2, 3, 4, 5 и 6 соответственно. Когда кубик остановится, посмотрите на число на верхней поверхности кубика. Если количество бросков равно 6, будет предложено сообщение о выигрыше, в противном случае бросок продолжится.
1. Ключевые технологии
1.1. Форма веб-управления.
Форма веб-управления имеет объектно-ориентированные характеристики языка высокого уровня. Это объект пространства имен System.Web.UI.WebControls в ASP.NET. Процесс обработки аналогичен форме управления HTML со следующими характеристиками: форма выполняется на стороне сервера; все поля ввода представляют собой элементы управления с мощными и богатыми свойствами и методами, и информация полей ввода может сохраняться; имеет возможность проверки полей ввода. Содержит элементы управления отображением данных и т. д.
Типичный код формы веб-элемента управления выглядит следующим образом:
<asp: button id="sub3" text="confirm" runat="server"/>
Среди них ASP: XXX указывает, какой тип веб-элемента управления указывает атрибут ID; идентификационное имя элемента управления. Значение атрибута Runat — сервер, указывающее, что это элемент управления, работающий на стороне сервера.
Веб-элементы управления, которые будут использоваться в этом примере, в основном представляют собой кнопки. Элемент управления «Изображение» используется для отображения файлов изображений и имеет следующие атрибуты: Imageurl, указывающий URL-адрес файла изображения. Ширина, ширина отображения файла изображения, высота отображения файла изображения и т. д.;
1.2 Генерация псевдослучайных чисел
Согласно описанию анализа требований, чтобы смоделировать очки, полученные случайным бросанием игральной кости, необходимо случайным образом генерировать целые числа в диапазоне от 1 до 6. В этом случае используется метод Next (i, j) класса System.Random можно использовать, где i=1, j=7. (Автор написал тестовую программу и обнаружил, что если j=6, генерируется случайное число от 1 до 5)
2. Реализация программы
Основной код программы выглядит следующим образом:
<script Language="vb" runat="server ">
sub disp(obj as object,e as eventargs)
dim r1 as random =new random() //Определяем класс случайных чисел
dim file_prefix as string = "Imagesdie"
dim file_suffix as string = ".png"
value = r1. next(1,7) //уменьшаем значение как целое число
s1 = file_prefix + value.tostring() + file_suffix
pic1.imageurl = s1 //обновляем атрибут imageurl элемента управления Image
, если значение = 6, затем
disp.text = " Вы выиграли" / /Показать подсказку
else
disp.text = "Попробуй еще раз"
end if
end sub
</script>
<form id="form1" runat="server"><br>
<asp:button id="disp" runat="server " onclick="disp" text="start"/>
<asp:image id="pic1" runat="server" width="50" height="50"/></form>
Текущий результат программы показана на рисунке 2. Показано:
Рисунок 2. Результаты запуска программы
Заключение
Псевдослучайные числа используются во многих местах в веб-приложениях. Как выбрать начальные параметры для генерации случайных последовательностей и какой случайный алгоритм использовать для генерации псевдослучайных последовательностей с лучшей производительностью — это компьютерное программное обеспечение. Одна из преследуемых целей. Используя класс генерации псевдослучайных чисел, предоставляемый платформой ASP.NET, и методы функций, предоставляемые языком сценариев VB.NET, можно генерировать различные случайные последовательности, отвечающие различным требованиям. Например, код случайной проверки, используемый для аутентификации личности в веб-системе, использует технологию генерации случайных чисел. На этом сайте много статей, поэтому я не буду здесь вдаваться в подробности.