Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/42: Рейтинг темы: голосов - 42, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 31.05.2012
Сообщений: 37
1

Генератор случайных чисел

08.09.2012, 16:06. Просмотров 8493. Ответов 1
Метки нет (Все метки)

Предлагаю рассмотреть актуальность генератора случайных чисел типа У=sin(...), многоточие ограничено только нашей фантазией, вместо синуса также можно использовать и косинус. Я рассматриваю синус и косинус, только как функции способные при любом значении переменной возвращать значение функции в заданный диапазон, все дальнейшие рассуждения исходят из этого тезиса.

К примеру, стоит задача сгенерировать ряд случайных чисел из 100 членов, каждый член от 0 до 10. Берем произвольную функцию У=sin(Х*sin(Х)), т.к. синус ограничен значениями от -1 до 1, то домножаем результат на 5, получим функцию У=5*sin(Х*sin(Х)), в результате все значения разместятся в диапазоне от -5 до 5, и чтобы диапазон от -5 до 5 сместить в диапазон от 0 до 10 просто добавляем слагаемое +5, получаем функцию У=5*sin(Х*sin(Х))+5. Если нас интересуют целые значения У, тогда добавляем еще округление У=round(5*sin(У*sin(У))+5).

В результате этих махинаций получаем функцию, которая на любые значения Х выдаст целочисленное значение 0<=У<=10. Теперь подставляем Х= 1..100 в функцию, получаем график -, как вариант просто точки - , если нам нужно еще построить случайный ряд мы можем взять эту же функцию от 101<=X<=200 и так до бесконечности. Также можно внести коррективы в формулу, например У=round(5*sin(Х*sin(Х/2))+5) , вариаций бесконечное множество, вплоть до простого передвижения скобок и изменения знака (). Кому интересно сравнение случайных рядов - . Т.е. с формулой функции можно работать чуть ли не как с текстом, внося туда случайные элементы, что каждый раз дает новый бесконечный ряд случайных чисел.

Под понятием "случайный" конечно имеется в виду псевдослучайный, но еще вроде не придуман совершенный алгоритм генерации случайных чисел, поэтому вопрос стоит лишь в выборе метода...

P.S.: для тех кого не устроит генерировать числа по простому, предлагаю такой вариант - придумайте 10 формул, назовем их условно формулы второго порядка, пронумеруйте их, придумайте формулу первого порядка и по вышеописанному примеру формула первого порядка генерирует У1 от 1 до 10, У1 рассматривается как номер формулы второго порядка, таким образом выбранная формула второго порядка генерирует значение У2 используя то же значение переменной, что и при генерации У1...количество порядков также ограничено только фантазией...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2012, 16:06
Ответы с готовыми решениями:

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

Детерминированный генератор случайных чисел с привязкой по ключу
Собстно сабж - нужен детерминированный ГСЧ с привязкой по ключу (хэш, соль, зерно/seed и т.д.)...

Как работает генератор случайных чисел при создании фраз из слов?
Подскажите как сделать такой код,который-бы генерировал случайные числа и при этом к каждому числу ...

Генератор псевдо случайных чисел Блюм Блюм Шуб
У меня возникла проблема с созданием конструктора при построении генератора. Не могу понять как его...

1
1 / 1 / 0
Регистрация: 27.04.2011
Сообщений: 9
12.09.2012, 19:20 2
Никто не использует синус т.к. он ОЧЕНЬ медленен!
В заданный диапазон любое число возвращают нахождением его остатка от деления (в общем случае)
В случае когда диапазон соответствует степени 2ки, операцию можно заменить маскированием
rnd() & mask; //где rnd- генератор, mask- степень 2ки -1, например 255, для получения байтового значения

сам генератор если взять классику:
rnd= (a*X +b) & mask; //где X-предыдущее сгенерированное число, a и b - константы генератора задающие случайную последовательность, ее период и ее "качество" (их надо подобрать исходя из твоих запросов к генератору, почитай "Искусство Программирования" Дональд Кнут)

это очень быстрый генератор! он дает равномерное распределение т.е. все числа выпадают с равной вероятностью (при условии, что правильно подобранны константы)

а синус не будет генерировать! он будет только возвращать значение в диапазон
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2012, 19:20

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как написать генератор случайных чисел?
Может ли кто-нибудь подсказать, как пишется генератор случайных чисел? И, если не сложно,...

Создать генератор случайных чисел с вычеркиванием сгенерированных чисел
Помогите пож. решить задачку: 1 Есть диапазон чисел от 1 до «i» 2 Необходимо выбрать случайное...

Генератор случайных чисел
Добрый вечер! Собственно-то тако задание: необходимо правильно задать параметры для ЛКГ и написать...

Генератор случайных чисел
Всем привет, вот такая задачка. &quot;Датчики случайных чисел можно привлекать при подборе проверочных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.