Другие языки программирования и технологии
Как же работает рандом?
как подпрограмма может создавать любые числа, я думаю она сложная. если не сложно, дайте программный код на паскале. спасибо. Беккиев Алим 11лет.
Она очень простая. Чаще всего делается так. Предыдущее число умножается на определенный коэффициент и добавляется еще одно число. Если полученное число чересчур большое, берется его остаток от деления на самое большее требуемое псевдослучайное число.
Этот метод называется линейным конгруэнтным методом генерации псевдослучайных чисел. Хорошие результаты дают далеко не все коэффициенты и добавляемые числа. "Хорошие" определяются различными методами теории чисел. В каждой реализации языка программирования используются свои коэффициент и добавляемое число, выбираемые разработчиком, они будут одни и те же для всех программ. По умолчанию начальное число для выработки первого псевдослучайного числа из последовательности берется нулем, но тогда всегда получалась бы одна и та же последовательность. Чтобы последовательности получались разными, в качестве начального числа обычно выбирается текущее время, в Паскале это делает процедура randomize.
Есть конечно, и другие методы. Например, берется какое-то число, возводится в квадрат (умножается само на себя) , из него берутся средние цифры, это и будет новое число. Из него опять берутся средние цифры.. . сказка про белого бычка. Опять же в качестве начального хорошо не всякое число - какие хороши, этим занимается математика, конечно, не школьная. Но, например, число Пи и кратные ему вполне подойдут.
Этот метод называется линейным конгруэнтным методом генерации псевдослучайных чисел. Хорошие результаты дают далеко не все коэффициенты и добавляемые числа. "Хорошие" определяются различными методами теории чисел. В каждой реализации языка программирования используются свои коэффициент и добавляемое число, выбираемые разработчиком, они будут одни и те же для всех программ. По умолчанию начальное число для выработки первого псевдослучайного числа из последовательности берется нулем, но тогда всегда получалась бы одна и та же последовательность. Чтобы последовательности получались разными, в качестве начального числа обычно выбирается текущее время, в Паскале это делает процедура randomize.
Есть конечно, и другие методы. Например, берется какое-то число, возводится в квадрат (умножается само на себя) , из него берутся средние цифры, это и будет новое число. Из него опять берутся средние цифры.. . сказка про белого бычка. Опять же в качестве начального хорошо не всякое число - какие хороши, этим занимается математика, конечно, не школьная. Но, например, число Пи и кратные ему вполне подойдут.
static unsigned long int next = 1;
int rand(void) // RAND_MAX assumed to be 32767
{
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % 32768;
}
void srand(unsigned int seed)
{
next = seed;
}
int rand(void) // RAND_MAX assumed to be 32767
{
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % 32768;
}
void srand(unsigned int seed)
{
next = seed;
}
может роддом?
Не совсем паскаль, но главное понять алгоритм)
int[] massiv = new int[10]; //Объявим массив чтобы было куда записать сгенерированные случайные числа
Random rnd = new Random(); //Функция Рандома
for (int i = 1; i < 11; i++) //Цикл на заполнение массива случайными числами от первого до десятого элемента массива
{
mas1 = rnd.Next(-100, 100); // заполнение массива случайными числами от -100 до 100
}
и ничего сложного, сложнее написать чтобы массив заполнялся просто по порядку)
int[] massiv = new int[10]; //Объявим массив чтобы было куда записать сгенерированные случайные числа
Random rnd = new Random(); //Функция Рандома
for (int i = 1; i < 11; i++) //Цикл на заполнение массива случайными числами от первого до десятого элемента массива
{
mas1 = rnd.Next(-100, 100); // заполнение массива случайными числами от -100 до 100
}
и ничего сложного, сложнее написать чтобы массив заполнялся просто по порядку)
Похожие вопросы
- Разбираем по пунктам - "Что такое Рандом, особенности и вычисления"
- Надо на VB 6 не повторялись числа которые задумал рандом
- Подскажите, как обмануть или предсказать рандом? где он так сказать компилируется у меня на ПК или на сервере, пример L2
- Задан массив размером 30 элементов. Подсчитать число и сумму положительных элементов в нем. В Паскале. через рандом чисел !
- Рандом в играх.
- Люди работающие с рисунками на компьютере помогите.
- Почему многие розничные типографии и верстальщики частники работают в основном на ADOBE, а оптовом на CorelDraw?
- Как работает программирование? Какая физическая основа у программирования?
- Вопрос к опытным программистам! Вы стали работать программистом потому что многое из перечисленного ниже совпадает?
- Делаю нейронную сеть на C++. Как в C++ работать с микрофоном?