Генерация случайных чисел
Формирование устойчивой последовательности псевдослучайных чисел с использованием метода "середины квадрата". Разработка программы для определения среднего значения чисел, среднего значения квадратов чисел и дисперсии для последовательности из 20 чисел.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 21.01.2015 |
Размер файла | 1,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Государственное бюджетное образовательное учреждение среднего профессионального образования
Владимирской области
«Владимирский авиамеханический колледж»
Специальность 09.02.03
Программирование в компьютерных системах
Дисциплина «Математическое моделирование»
Лабораторная работа № 3
Тема: Генерация случайных чисел
Пояснительная записка
ВАМК.09.02.03.БЛР-112 ПЗ
Выполнил: ________ /А.С. Никитин /
Проверил: ___________/ А.Е. Петров /
Владимир 2014
Цель работы: научиться строить последовательности псевдослучайных чисел и определять их близость к истинным законам распределения случайных чисел.
Оборудование: ПЭВМ, методические указания по выполнению лабораторной работы.
Задание: Сформировать устойчивую последовательность псевдослучайных чисел, используя метод «середины квадрата». Для последовательности из 20 чисел определить среднее значение чисел, среднее значение квадратов чисел и дисперсию.
Листинг программного кода (основной процедуры)
программа последовательность середина квадрат
namespace WindowsFormsApplication1
{public partial class Form1 : Form
{public Form1()
{InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
double m1 = 0;
double m2 = 0;
double d = 0;
double o1 = 0, o2 = 0, o3 = 0;
textBox2.Text = "";
double x = Convert.ToDouble(maskedTextBox1.Text);
m1 = x/10000;
m2 = Math.Pow(x/10000,2);
for (int i=1; i <= 30; i++)
x = Math.Pow(x, 2);
string sx = Convert.ToString(x);
if (sx.Length == 7)
{
sx = sx.Remove(0, 1);
sx = sx.Remove(4, 2);
}
if (sx.Length == 8)
{
sx = sx.Remove(0, 2);
sx = sx.Remove(4, 2);
}
x = Convert.ToDouble(sx);
if ((x < 1000) || (x > 9999))
{ textBox2.Text = textBox2.Text + "Ошибка"+Environment.NewLine; return; }
else
{ textBox2.Text = textBox2.Text + sx + Environment.NewLine; }
m1 = m1 + x / 10000;
m2 = m2 + Math.Pow(x / 10000, 2);
}
m1 = m1 / 30;
m2 = m2 / 30;
d = m2 - Math.Pow(m1,2);
o1 = Math.Abs(m1 - 0.5) / 0.5;
o2 = Math.Abs(m2 - 0.33333) / (0.33333);
o3 = Math.Abs(d - 0.08333) / (0.08333);
textBox1.Text = Convert.ToString(Math.Round(m1,3));
textBox4.Text = Convert.ToString(Math.Round(m2,3));
textBox5.Text = Convert.ToString(Math.Round(d,3));
textBox6.Text = Convert.ToString(Math.Round(o1,3));
textBox7.Text = Convert.ToString(Math.Round(o2,3));
textBox8.Text = Convert.ToString(Math.Round(o3,3));
private void button2_Click(object sender, EventArgs e)
{
if (maskedTextBox2.Text == "")
{
MessageBox.Show("Ошибка");
return;
}
else
{
double n = Convert.ToDouble(maskedTextBox2.Text);
if ((n < 1000) || (n > 9999) || (maskedTextBox2.Text == ""))
{
MessageBox.Show("Ошибка");
return;
}
else
{
textBox3.Text = "";
for (double chi = n; chi <= n + 100; chi++)
{
int o = 0;
double ch = chi;
for (int i = 1; i <= 30; i++)
{
ch = Math.Pow(ch, 2);
string sch = Convert.ToString(ch);
if (sch.Length == 7)
sch = sch.Remove(0, 1);
sch = sch.Remove(4, 2);
}
if (sch.Length == 8)
{
sch = sch.Remove(0, 2);
sch = sch.Remove(4, 2);
}
ch = Convert.ToDouble(sch);
if ((ch >= 1000) && (ch <= 9999))
{ o = o + 1; }
if (o == 30)
{ textBox3.Text = textBox3.Text + chi + Environment.NewLine;
Результаты работы программы:
Размещено на Allbest.ru
Подобные документы
Характеристика вероятностного алгоритма и особенности его использования. Принцип работы и назначение генератора случайных чисел, сущность псевдослучайных чисел. Рассмотрение и реализация метода середины квадрата, разработка алгоритма и его кодирование.
курсовая работа [50,3 K], добавлен 18.09.2009Написание программы для генерации случайных чисел, в которой реализуются возможности генерации абсолютно случайных чисел. Приложение на языке С/С++. Описание узла, содержащего данные; функций и методов работы; чтения данных из памяти и вывода их на экран.
курсовая работа [172,4 K], добавлен 23.05.2012Способы получения случайных чисел в программировании и их использование для решения ряда задач. Принцип действия и тестирование работы генератора случайных чисел в Borland C++, его преимущества. Генерация одномерной и двумерной случайной величины.
лабораторная работа [105,4 K], добавлен 06.07.2009Основные подходы при создании Windows приложений. Изучение навыков работы с 2D графикой в Windows приложениях. Методы генерации псевдослучайных чисел. Разработка игры "Сапер" с расположением мин на основе нескольких методов генерации случайных чисел.
курсовая работа [63,2 K], добавлен 18.02.2009Проектирование датчика случайных чисел, пригодного для моделирования случайной последовательности с заданным законом распределения. Методы моделирования. Разработка алгоритма и программы датчика. Исследование свойств выработанной им последовательности.
лабораторная работа [124,2 K], добавлен 15.06.2010Структура и функции генератора случайных чисел. Методы предельного уменьшения ошибки второго рода. Усиление шумового сигнала. Его дискретизация по времени и аналого-цифровое преобразование. Формирование случайной последовательности и ее корреляция.
курсовая работа [299,4 K], добавлен 11.12.2014Применение случайных чисел в моделировании, выборке, численном анализе, программировании и принятии решений. Понятие равномерного распределения вероятности. Способы получения последовательности. Правила выбора модуля. Критерий Колмогорова-Смирнова.
курсовая работа [1,3 M], добавлен 17.03.2011Программа для формирования и просмотра команды для олимпиады по программированию. Генератор случайных чисел в Borland C++, методы их получения. Линейный конгруэнтный метод. Метод Фибоначчи, вихря Мерсенна. Тестирование псевдослучайных последовательностей.
курсовая работа [93,5 K], добавлен 27.09.2014Преобразование чисел из естественной формы в нормализованную. Алгоритм нормализации числа. Способы кодирования чисел и действия над ними. Особенности прямого, дополнительного, смещенного и обратного кода. Понятие вещественных чисел, их представление.
презентация [42,6 K], добавлен 14.06.2011Анализ способов построения генераторов случайных чисел для криптографических задач. Анализ генератора случайных чисел на основе магнитометров. Анализ статистических свойств двоичных последовательностей, полученных путем квантования данных магнитометра.
дипломная работа [2,5 M], добавлен 06.05.2018