Рандом

Ответить
Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Рандом

#1

Сообщение Oleg1345140 » 19.02.2016{, 19:21}

Добрый день, уважаемые форумчане. Суть в следующем когда пользуешься блоком рандом то очень часто цепочки значений повторяются при каждом старте устройства (особенно при малом разбросе значений). Пытался привязывать к значению аналоговых входов но если они вися в воздухе то 90% там около максимальные значения и рандом опять получается "предсказуемым" есть ли способ реализовать генератор псевдослучайных чисел более случайным?

dim21841
Рядовой
Сообщения: 37
Зарегистрирован: 13.10.2015{, 08:08}
Репутация: 0
Откуда: Бельцы

Рандом

#2

Сообщение dim21841 » 19.02.2016{, 22:54}

попробуй привязаться к чему-нибудь уникальному, например дате со времинем?! т.е. создать из них какуюто переменную а после генерировать. на компе некоторые программы за переменую для генерации чего-либо берут координаты мишки а ты возьми дату и время с секундами.

Naladchik
Лейтенант
Сообщения: 534
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 77
Откуда: Новосибирск
Имя: Павел

Рандом

#3

Сообщение Naladchik » 20.02.2016{, 08:41}

dim21841 писал(а):например дате со времинем?!
Не самый удачный вариант. А если время в проекте  не будет использоваться? Зачем ставить шильд?

Предлагаю такой вариант
Создать пользовательский блок с кодом на СИ, считать в нем значение millis() (время работы контроллера с момента включения, ms) и присвоить это значение перемененной типа Unsigned Long Integer. Далее перевести значение переменной в строку и вырезать необходимое количество знаков. Далее опять перевод в числовое значение и получаем рандомное число с необходимым количеством разрядов.
Последний раз редактировалось Naladchik 20.02.2016{, 08:44}, всего редактировалось 1 раз.
Win7-64. FLProg Portable.
Изображение

Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Рандом

#4

Сообщение Oleg1345140 » 20.02.2016{, 16:57}

dim21841 писал(а):попробуй привязаться к чему-нибудь уникальному, например дате со времинем?! т.е. создать из них какуюто переменную а после генерировать. на компе некоторые программы за переменую для генерации чего-либо берут координаты мишки а ты возьми дату и время с секундами.
Как вариант, но если честно то задействовать для этого шильд часов .... как то расточительно.
Naladchik писал(а):Создать пользовательский блок с кодом на СИ, считать в нем значение millis() (время работы контроллера с момента включения, ms) и присвоить это значение перемененной типа Unsigned Long Integer. Далее перевести значение переменной в строку и вырезать необходимое количество знаков. Далее опять перевод в числовое значение и получаем рандомное число с необходимым количеством разрядов.
Вариант интересный но на СИ я совсем не спец, совсем.

Naladchik
Лейтенант
Сообщения: 534
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 77
Откуда: Новосибирск
Имя: Павел

Рандом

#5

Сообщение Naladchik » 20.02.2016{, 20:22}

Oleg1345140 писал(а):...но на СИ я совсем не спец, совсем.
я так же, все на уровне "научного тыка", саму идею представляю а вот в плане реализации пока ничем помочь не могу. Уверен что тут все должно быть просто.
Win7-64. FLProg Portable.
Изображение

Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Рандом

#6

Сообщение Oleg1345140 » 20.02.2016{, 20:34}

Я вот еще идею терморезистора рассматривал, но там тоже свои нюансы. А может есть какие нибудь элементарные модули или алгоритмы.

Naladchik
Лейтенант
Сообщения: 534
Зарегистрирован: 04.10.2015{, 19:10}
Репутация: 77
Откуда: Новосибирск
Имя: Павел

Рандом

#7

Сообщение Naladchik » 20.02.2016{, 20:38}

Oleg1345140, что то я затравился идеей.
Вот вариант попробуйте.

Пробный вариант, но вроде получилось.

Функция millis не понравилась, с micros получше будет
Для скачивания вложений Вы должны быть зарегистрированы.
Последний раз редактировалось Naladchik 20.02.2016{, 21:06}, всего редактировалось 1 раз.
Win7-64. FLProg Portable.
Изображение

Oleg1345140
Лейтенант
Сообщения: 538
Зарегистрирован: 06.09.2015{, 07:09}
Репутация: 1
Откуда: Курган

Рандом

#8

Сообщение Oleg1345140 » 20.02.2016{, 21:12}

Naladchik писал(а):Пробный вариант, но вроде получилось.
С утра попробую, а пока с наступающим)))

Ответить

Вернуться в «Математика»