Страница 1 из 1
Рандом
Добавлено: 19 фев 2016, 19:21
Oleg1345140
Добрый день, уважаемые форумчане. Суть в следующем когда пользуешься блоком рандом то очень часто цепочки значений повторяются при каждом старте устройства (особенно при малом разбросе значений). Пытался привязывать к значению аналоговых входов но если они вися в воздухе то 90% там около максимальные значения и рандом опять получается "предсказуемым" есть ли способ реализовать генератор псевдослучайных чисел более случайным?
Рандом
Добавлено: 19 фев 2016, 22:54
dim21841
попробуй привязаться к чему-нибудь уникальному, например дате со времинем?! т.е. создать из них какуюто переменную а после генерировать. на компе некоторые программы за переменую для генерации чего-либо берут координаты мишки а ты возьми дату и время с секундами.
Рандом
Добавлено: 20 фев 2016, 08:41
Naladchik
dim21841 писал(а):например дате со времинем?!
Не самый удачный вариант. А если время в проекте не будет использоваться? Зачем ставить шильд?
Предлагаю такой вариант
Создать пользовательский блок с кодом на СИ, считать в нем значение millis() (время работы контроллера с момента включения, ms) и присвоить это значение перемененной типа Unsigned Long Integer. Далее перевести значение переменной в строку и вырезать необходимое количество знаков. Далее опять перевод в числовое значение и получаем рандомное число с необходимым количеством разрядов.
Рандом
Добавлено: 20 фев 2016, 16:57
Oleg1345140
dim21841 писал(а):попробуй привязаться к чему-нибудь уникальному, например дате со времинем?! т.е. создать из них какуюто переменную а после генерировать. на компе некоторые программы за переменую для генерации чего-либо берут координаты мишки а ты возьми дату и время с секундами.
Как вариант, но если честно то задействовать для этого шильд часов .... как то расточительно.
Naladchik писал(а):Создать пользовательский блок с кодом на СИ, считать в нем значение millis() (время работы контроллера с момента включения, ms) и присвоить это значение перемененной типа Unsigned Long Integer. Далее перевести значение переменной в строку и вырезать необходимое количество знаков. Далее опять перевод в числовое значение и получаем рандомное число с необходимым количеством разрядов.
Вариант интересный но на СИ я совсем не спец, совсем.
Рандом
Добавлено: 20 фев 2016, 20:22
Naladchik
Oleg1345140 писал(а):...но на СИ я совсем не спец, совсем.
я так же, все на уровне "научного тыка", саму идею представляю а вот в плане реализации пока ничем помочь не могу. Уверен что тут все должно быть просто.
Рандом
Добавлено: 20 фев 2016, 20:34
Oleg1345140
Я вот еще идею терморезистора рассматривал, но там тоже свои нюансы. А может есть какие нибудь элементарные модули или алгоритмы.
Рандом
Добавлено: 20 фев 2016, 20:38
Naladchik
Oleg1345140, что то я затравился идеей.
Вот вариант попробуйте.
Пробный вариант, но вроде получилось.
Функция millis не понравилась, с micros получше будет
Рандом
Добавлено: 20 фев 2016, 21:12
Oleg1345140
Naladchik писал(а):Пробный вариант, но вроде получилось.
С утра попробую, а пока с наступающим)))