ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
122827 Топик полностью
AlexandrY (11.06.2008 17:55, просмотров: 196) ответил Alex B. на подскажите простой и быстрый генератор псевдослучайных чисел для 8-битников. Чтоб период побольше был... Конкретно интересует генерация 32-битных ПСЧ.
А так?  #define NITER 4 /* Генератор случайной последовательности на основе схемы псевдо-DES. "NUMERICAL RECIPES IN C" Chapter 7.5 *lword, *irword - указатели на инициализационные переменные */ void psdes(unsigned long *lword, unsigned long *irword) { unsigned long i,ia,ib,iswap,itmph=0,itmpl=0; static unsigned long c1[NITER]={0xbaa96887L, 0x1e17d32cL, 0x03bcdc3cL, 0x0f33d1b2L}; static unsigned long c2[NITER]={0x4b0f3b58L, 0xe874f0c3L, 0x6955c5a6L, 0x55a7ca46L}; for( i=0;i<NITER;i++ ) { iswap = (*irword); ia = iswap ^ c1[i]; itmpl = ia & 0xffff; itmph = ia >> 16; ib = itmpl*itmpl+ ~(itmph*itmph); ia = (ib >> 16) | ((ib & 0xffff) << 16); *irword = (*lword) ^ ((ia ^ c2[i])+ itmpl*itmph ); *lword = iswap; } } #undef NITER
INDEMSYS