Полная версия этой страницы:
rand()
SasaVitebsk
Oct 15 2008, 21:46
Кто подскажет формулу фирменной ф-ции rand() из IAR AVR библиотеки.
Или может предложит свой вариант не очень навороченный. В принципе надо пулучить или байт или слово. Нужно определить мощность последовательности. (попробую сам сделать)
Warlockwolf
Oct 15 2008, 22:04
- если я правильно понял вопрос.
использую такой.
u8 Radom(){
iran=(iran*(u32)4096+(u32)150889)%(u32)714025;
return iran/0xfff;
};
iran-32битный, храню в пзу.
формулу вычитал в инете.
первый раз инициализирую-- iran=считываю ченить с ацп несколько раз. или загоняю число из компа.
SasaVitebsk
Oct 15 2008, 22:19
Спасибо вы всё правильно поняли.
Правда тут 2 деления. В IAR умножения и сложения. Но это тоже принимается как вариант.
Если ещё кто выскажется буду благодарен.
IgorKossak
Oct 16 2008, 05:33
Код
#include "stdlib.h"
unsigned long int __next_rand = 1;
int rand(void)
{
__next_rand = __next_rand * 1103515245 + 12345;
return (unsigned int) (__next_rand >> 16) & RAND_MAX;
}
SasaVitebsk
Oct 16 2008, 15:48
Оно. Спасибо.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.