Как увеличить рандомность random() ?

Тема в разделе "Arduino & Shields", создана пользователем Kremnev8, 24 окт 2015.

  1. Kremnev8

    Kremnev8 Нуб

    При перезапуске микроконтроллера каждый раз вылезают одни и те же комбинаций чисел, а надо что бы даже после перезапуска микроконтроллера нельзя было предугадать следующее число.
    как это сделать ?
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

  3. ИгорьК

    ИгорьК Гуру

    Перед вызовом функции вызвать эту:
    Код (C++):
    randomSeed(analogRead(A5));
    Главное чтобы нога А5 висела в воздухе.
     
  4. DrProg

    DrProg Вечный нерд

    Только хотел написать про запуск от аналогового сигнала...
     
    ИгорьК нравится это.
  5. ИгорьК

    ИгорьК Гуру

    Фигасе частота у камня...
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    суть такая: берём 3 переменных А=123 B=23 C=1; это начальные значения.
    Получение случайки:
    А=B;
    B=C<<1; 7бит в регистре надо перенести в 0 бит, т.е прокрутить полностью.
    C=A+B;
    собственно и всё [​IMG]
    Зависимость всё-таки есть, но числа получаются равномерно по после где-то 20000 циклов (начинают повторятся). Думаю, этого вполне достаточно. Причём А=123 B=23 C=1 как оказалось самый лучший вариант.