Цитата(glebka @ Oct 17 2006, 12:23)

У меня каждое устройство имеет уникальный адрес записанный в EEPROM(6 байтов) и устройство постоянно включается,выключается поэтому частая запись нежелательна.
Цитата(glebka @ Oct 17 2006, 12:23)

А что если использовать этот ID в таком виде:
вначале
void srand(unsigned seed), где unsigned seed моё id,
потом
int rand(void)
Цитата
В принципе,я так думаю что меня устроит и постоянная последовательность главное чтобы устройства не перекрывали друг друга
Ну тогда так и делайте
srand(ID)
rand()
........
rand()
Просто в начальном посте не было понятно что же Вам нужно в итоге...
Цитата
Да нет никаких событий,работающее устройство должно время от времени посылать своё ID в окружающую среду, приёмник принимает и обрабатывает.
То есть Вам нужно разделение одного радиоканала на много независимых передатчиков.
Тогда можно обойтись вообще без случайных чисел.
Пусть есть 10 независимых передатчиков. У каждого из них в младшей части ID записан
номер от 1 до 10.
Выбираем довольно большое число (по сравнению с количеством передатчиков)
например 1000. Для каждого передатчика время между посылками делаем пропорционально
его номеру + наша константа: T=(1000+K)N где N>двухкратного времени одиночной посылки.
Иногда конечно будут возникать коллизии, но очень не часто.
Если хочеться еще уменьшить количество коллизий, тогда нужно смотреть в сторону простых чисел.
Пусть есть 10 передатчиков.
Выбираем 10 первых простых чисел больше 1000 и прописываем их в ID.
Для каждого передатчика время между посылками делаем пропорционально этим простым
числам. коллизий будет очень мало.