ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
5 июля
152753 Топик полностью
Сергей Борщ (04.04.2009 13:04, просмотров: 215) ответил Сергей Борщ на Решение найдено. Спасибо коллегам с Электроникса, которые напрягли математиков на форуме НГУ :) Если кому интересно - по ссылке.
Развернул рекурсию. Это какой же склад ума надо уметь, чтобы писать рекурсию прямо из головы? uint32_t decode2(uint32_t y, uint_fast8_t k) { if(y < 2) return y; uint32_t x = y & 1; for(uint32_t Mask = (1<<1) | (1<<0); Mask < 1ULL << k; Mask = (Mask << 1) | (1 << 0) ) { uint32_t n = ((x * (x + 1)) >> 1) & Mask; if( n != (y & Mask) ) x ^= Mask; } return x; }