Random для Attiny13
- Войдите на сайт для отправки комментариев
Втр, 18/01/2022 - 21:09
Здравствуйте. Вопрос, есть вот такой компактный кусок кода для Attiny13, который занимает мало места и достаточно хорошо генерирует псевдо-рандом, выдавая значения от 0 до 7:
byte rnd() { static uint16_t seed; seed = (seed * 2053ul) + 13849; return (seed >> 8) & 7; }
Как его изменить, что бы числа выпадали от 1 до 6?
Понимаю, что после битового И в конце можно поставить 6 и тогда считает до шести, но от нуля.
Как сделать сдвиг или доп. условие что бы счёт шёл от одного до шести.
Спасибо.
Можно заменить побитовое И на остаток по модулю 6 (+1). Но насколько равномерным будет результат, неизвестно. И в коде будет немного объемнее.