277 / 154 / 52
Регистрация: 30.06.2011
Сообщений: 1,703
1

Генерация "случайного" числа

12.05.2016, 16:27. Показов 1075. Ответов 9
Метки нет (Все метки)

Приветствую всех! Подскажите алгоритм для генерации последовательностей "случайных" чисел в диапазоне от 4352 до 65535. Алгоритм должен иметь входные данные, чтобы, в зависимости от них, он генерировал разные последовательности.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2016, 16:27
Ответы с готовыми решениями:

Генерация действительно случайного числа
Всем привет. Как известно, алгоритм рандома работает не просто так, а числа выходят не случайно, а...

Алгоритм выбора случайного значения с учётом его "веса"
Есть хэш таблица: Значение - Вес, соответствующий значению Например, А 6 Б 0 В 1 Г...

Поиск и вывод строки по заданному шаблону (с использованием симоволов "?", "*", "+")
Добрый день Имею такое задание: необходимо написать программу, которая сможет найти в файле...

Генерация случайного направления
Не могу придумать алгоритм генерации случайного направления в рамках задачи генерации...

9
Модератор
2842 / 2008 / 431
Регистрация: 26.03.2015
Сообщений: 7,721
12.05.2016, 16:40 2
Стандартная функция языка не подходит?
0
277 / 154 / 52
Регистрация: 30.06.2011
Сообщений: 1,703
12.05.2016, 16:51  [ТС] 3
Не подходит. Пишу программу для микроконтроллера и я должен знать какое следующее "случайное" число будет сгенерировано в микроконтроллере.
0
Нарушитель
1307 / 757 / 130
Регистрация: 12.10.2013
Сообщений: 5,065
12.05.2016, 17:38 4
Цитата Сообщение от d7d1c Посмотреть сообщение
я должен знать какое следующее "случайное" число будет
Искать “Детерменированый ГСЧ” или “Генератор псевдослучайных чисел” вроде в ассемблере есть команда которая детерминирует генератор.
Скорей всего у вас в “стандартной функции” ГСЧ прописано менять ключ генератора в самой либе.
Детерминированный генератор случайных чисел с привязкой по ключу
Цитата Сообщение от Shamil1 Посмотреть сообщение
если инициализировать ГСЧ одним и тем же числом, то получишь ту же последовательность.
В качестве простейшего генератора можно взять например параметрическую функцию.
Простая формула шума
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
12.05.2016, 18:32 5
Пример простейшего генератора псевдослучайных чисел
может быть таким
СЧn+1 = {3,1415926535897932*СЧn + 1,9876543210987654}
где
{x} - дробная часть числа х
СЧn+1 - последующее случайное число
СЧn - предыдущее случайное число
Самое первое случайное число вы задаете сами
0
277 / 154 / 52
Регистрация: 30.06.2011
Сообщений: 1,703
13.05.2016, 08:05  [ТС] 6
Спасибо за помощь. Однако решения я еще не нашел, поэтому конкретизирую задачу. Требуется алгоритм генератора псевдослучайных целых чисел для генерации чисел от 4352 до 65535 включительно. У алгоритма должен быть входной параметр (целое число), в зависимости от которого генерируется следующее число. Очень желательно, чтобы реализация алгоритма работала только с целыми числами или остатками от деления целых чисел (обусловлено тем, что программа пишется на ассемблере).
0
Модератор
2842 / 2008 / 431
Регистрация: 26.03.2015
Сообщений: 7,721
13.05.2016, 09:56 7
Лучший ответ Сообщение было отмечено d7d1cd как решение

Решение

Ищите "Линейный конгруэнтный ГПСЧ".

В простейшем случае:
xn+1 = (axn + c) mod 61183 + 4352

И есть некоторые рекомендации по тому, как лучше выбирать a и c
0
Нарушитель
1307 / 757 / 130
Регистрация: 12.10.2013
Сообщений: 5,065
13.05.2016, 10:11 8
Цитата Сообщение от d7d1c Посмотреть сообщение
генератора псевдослучайных целых чисел
Один и тот же закон округления.
Цитата Сообщение от d7d1c Посмотреть сообщение
от 4352 до 65535 включительно.
Пропорция.

Уверен вопрос генераторов с кучей примеров логики и кода давно и детально описан в любой нормальной книге обучающей ассемблеру для МКи оптимизирован для изучаемой архитектуры. Когда то читал AVR =)).
0
277 / 154 / 52
Регистрация: 30.06.2011
Сообщений: 1,703
13.05.2016, 14:47  [ТС] 9
Shamil1, спасибо за подсказку. Буду подбирать значения а и с.

Добавлено через 19 минут
Начал думать над значениями а и с и сразу возник вопрос. Возможно ли подобрать эти значения так, чтобы размер генерируемой уникальной последовательности не зависел от начального значения Xn? Или, по крайней мере, чтобы размер этой уникальной последовательности был не менее 200.
0
Модератор
2842 / 2008 / 431
Регистрация: 26.03.2015
Сообщений: 7,721
13.05.2016, 15:24 10
Цитата Сообщение от d7d1c Посмотреть сообщение
Начал думать над значениями а и с и сразу возник вопрос. Возможно ли подобрать эти значения так, чтобы размер генерируемой уникальной последовательности не зависел от начального значения Xn? Или, по крайней мере, чтобы размер этой уникальной последовательности был не менее 200.
Да.
Вбиваете в гугле "Линейный конгруэнтный ГПСЧ". Открываете первую ссылку (на статью в вики). И читаете, как правильно выбрать эти числа.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2016, 15:24

Генерация случайного сильно связанного орграфа
Здравствуйте. Необходимо, случайным образом, генерировать сильно связный орграф с заданным...

Алгоритм роста "квадрата" или как работает "черный ящик"
Хочу спросить совета по нахождению формулы для "черного ящика", который на входе принимает 2...

Из пункта "А" приехать в пункт "Б" и показать возможные траектории движения
Задача вот такая: надо из пункта "А" приехать в пункт "Б" и показать возможные траектории движения....

Критерии вхождения "шара" в "ящик"
Дано: Ящик (С параметрами: высота, длина, ширина), n шаров в этом ящике (С радиусами ri)....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru