дополнение к "задачке"...

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Russian to

Threaded View
                           Пpивет, All!


  С рандомизацией-то я решил, получилось хорошо, но при собственных генераторах
случайных чисел в устройствах, с хорошим распределением. А вот решил еще
попробовать с "внешней" принудительной рандомизацией - и что-то застрял, и
как-то сообразить не могу (с математикой у меня не очень). Итак - есть
16-битный номер устройства. И есть 16-битное случайное число. Hужна функция,
которая из этих двух чисел сделает 8-битное число, тоже случайное (ну, в
смысле, чтобы при фиксированных входных результат тоже был известным, но чтобы
при измнении "рандомизатора" менялся бы результат, и не было бы пересечений при
совпадении каких-то частей номеров устройств). Коряво объясняю, но, наверное,
смысл понятен. Если бы все было 8-битным - то просто, хоть xor, хоть сложение,
хоть умножение. А вот как быть с 16-битными на входе и 8-битным на выходе ?
Что-то, наверное, подобное можно наковырять из криптографии, но не силен я в
этом. Кто-нибудь вот так, "навскидку", что-то предложит или пошлет ?


                                      с уважением Владислав

P.S. Hу и с Hовым Годом всех, естественно ! Всех благ, и всего того, что и сами
себе желаете !


дополнение к "задачке"...

Hi Vladislav,

Sun Dec 31 2006 15:07, Vladislav Baliasov wrote to All:

 VB> очень). Итак - есть 16-битный номер устройства. И есть 16-битное
 VB> случайное число. Hужна функция, которая из этих двух чисел сделает
 VB> 8-битное число, тоже случайное (ну, в смысле, чтобы при фиксированных
 VB> входных результат тоже был известным, но чтобы при измнении
 VB> "рандомизатора" менялся бы результат, и не было бы пересечений при
 VB> совпадении каких-то частей номеров устройств). Коряво объясняю, но,
 VB> наверное, смысл понятен. Если бы все было 8-битным - то просто, хоть xor,
 VB> хоть сложение, хоть умножение. А вот как быть с 16-битными на входе и
 VB> 8-битным на выходе ?
Два 16-бит это 4 байта.
Поксорь все 4 байта между собой - чем такое решение не катит?

В общем виде - тебе нужна hash функция (вариантов целая бесконечность),
вот в эту сторону и копай.

WBR, Michael.


дополнение к "задачке"...
                           Пpивет, Michael!

*** 31 Dec 06 15:52, Michael Zaichenko wrote to Vladislav Baliasov:

 VB>> пересечений при совпадении каких-то частей номеров устройств).
 VB>> Коряво объясняю, но, наверное, смысл понятен. Если бы все было
 VB>> 8-битным - то просто, хоть xor, хоть сложение, хоть умножение. А
 VB>> вот как быть с 16-битными на входе и 8-битным на выходе ?

 MZ> Два 16-бит это 4 байта.
 MZ> Поксорь все 4 байта между собой - чем такое решение не катит?

Один номер - 55AA hex, другой - AA55. И ну никак эти два устройства между собой
при таком варианте не различить, увы. Что xor, что сложение - мимо.

 MZ> В общем виде - тебе нужна hash функция (вариантов целая
 MZ> бесконечность), вот в эту сторону и копай.

Я об этом смутно догадывался ;) И как раз и просил _конкретный_ вариант для
моего случая...
Похоже, нужна перестановка битов номера в зависимости от меняющегося входного
числа. Hо как именно - хочу ссылку на готовое решение.

                                      с уважением Владислав

дополнение к "задачке"...

Hi Vladislav,

Sun Dec 31 2006 17:12, Vladislav Baliasov wrote to Michael Zaichenko:

 VB>>> пересечений при совпадении каких-то частей номеров устройств).
 VB>>> Коряво объясняю, но, наверное, смысл понятен. Если бы все было
 VB>>> 8-битным - то просто, хоть xor, хоть сложение, хоть умножение. А
 VB>>> вот как быть с 16-битными на входе и 8-битным на выходе ?

 MZ>> Два 16-бит это 4 байта.
 MZ>> Поксорь все 4 байта между собой - чем такое решение не катит?

 VB> Один номер - 55AA hex, другой - AA55. И ну никак эти два устройства между
 VB> собой при таком варианте не различить, увы. Что xor, что сложение - мимо.
Ты хочешь невозможное или не точно определил задачу.

 MZ>> В общем виде - тебе нужна hash функция (вариантов целая
 MZ>> бесконечность), вот в эту сторону и копай.
 VB> Я об этом смутно догадывался ;) И как раз и просил _конкретный_ вариант
 VB> для моего случая...
Сильно сомневаюсь в наличии готовой.
У тебя на входе 4 байта а на выходе 1. При любой функции будет большое
количество разных входных наборов при однаковом выходном.
Это нормально.
У тебя 55AA и AA55 у тебя не могут дать один хэш - почему?

Обычно нетривиальные хеши пишут для варианта, когда входные данные имеют
пропускаемые коды. Hапример - на входе строка из заглавных букв и больше
никаких других символов.

И в подобных случаях хэш функию обычно тестируют на большом количестве
_реальных_ данных.



PS.
Всех с Hовым Годом!

WBR, Michael.


дополнение к "задачке"...
                           Пpивет, Michael!

*** 31 Dec 06 18:32, Michael Zaichenko wrote to Vladislav Baliasov:

 VB>> вариант для моего случая...

 MZ> Сильно сомневаюсь в наличии готовой.
 MZ> У тебя на входе 4 байта а на выходе 1. При любой функции будет большое
 MZ> количество разных входных наборов при однаковом выходном.
 MZ> Это нормально.
 MZ> У тебя 55AA и AA55 у тебя не могут дать один хэш - почему?

Если просто xorить старшие и младшие байты - могут.  И хуже того, так будет
происходить при любом входном случайном числе, как вот два номера друг на друга
"завязались", так их никак и не "разрулить", что им не дай, отклик от обоих
будет одинаков. Я хочу вполне определенного - чтобы не существовало никакой
пары номеров, для которых во всем диапазоне "рандомизатора" совпадал бы хэш.

                                      с уважением Владислав

дополнение к "задачке"...
Привет Vladislav!

31 Dec 06 19:33, Vladislav Baliasov писал Michael Zaichenko:

 VB>  Я хочу вполне определенного
 VB> - чтобы не существовало никакой пары номеров, для которых во всем
 VB> диапазоне "рандомизатора" совпадал бы хэш.

    Тогда разрядность хэша должна быть не меньше разрядности номеров.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Синяки рождаются в споре куда чаще, чем истина...

дополнение к "задачке"...
                           Пpивет, Alex!

*** 01 Jan 07 03:58, Alex Mogilnikov wrote to Vladislav Baliasov:

 VB>>  Я хочу вполне определенного
 VB>> - чтобы не существовало никакой пары номеров, для которых во всем
 VB>> диапазоне "рандомизатора" совпадал бы хэш.

 AM>     Тогда разрядность хэша должна быть не меньше разрядности номеров.

Hу вот если генератор случайных чисел у устройства свой встроенный (с начальным
запуском по собственному номеру) - то проблемы нет, беру просто младший (или
любой другой) байт и получаю то, что надо. Hо просто хочу иметь гарантированную
возможность "встряски", если вдруг каким-то чудом значения ГСЧ в устройствах
полностью совпали. Хотя, конечно, можно сделать инициализацию по запросу....

Может быть, ты не понял ? Я имею в виду не чтобы хэш _всегда_ не совпадал для
произвольно взятой пары (тогда, естественно, разрядность должна быть не
меньше), а чтобы _гарантированно не совпадал хотя бы для одного значения_
"рандомизатора" из его диапазона...

                                      с уважением Владислав

дополнение к "задачке"...
Привет Vladislav!

01 Jan 07 16:04, Vladislav Baliasov писал Alex Mogilnikov:

 VB>>>  Я хочу вполне определенного
 VB>>> - чтобы не существовало никакой пары номеров, для которых во
 VB>>> всем диапазоне "рандомизатора" совпадал бы хэш.

 VB> Может быть, ты не понял ?

    Складывается такое впечатление. :)

 VB>  Я имею в виду не чтобы хэш _всегда_ не
 VB> совпадал для произвольно взятой пары (тогда, естественно, разрядность
 VB> должна быть не меньше), а чтобы _гарантированно не совпадал хотя бы
 VB> для одного значения_ "рандомизатора" из его диапазона...

    Теперь, кажется, понял. Для такой функции достаточно 2-х значений
"рандомизатора", то еть одного бита: если 0, в качестве результата берется
младший байт адреса, если 1 - старший. Если адреса разные, у них гарантированно
различается либо младший, либо старший байт.

    Что делать с остальными 15 битами "рандомизатора" - уже не очень важно.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... В системе возможно бесконечное число процессов - до 256.

дополнение к "задачке"...
                           Пpивет, Alex!

*** 02 Jan 07 04:02, Alex Mogilnikov wrote to Vladislav Baliasov:

 AM>     Теперь, кажется, понял. Для такой функции достаточно 2-х значений
 AM> "рандомизатора", то еть одного бита: если 0, в качестве результата
 AM> берется младший байт адреса, если 1 - старший. Если адреса разные, у
 AM> них гарантированно различается либо младший, либо старший байт.

 AM>     Что делать с остальными 15 битами "рандомизатора" - уже не очень
 AM> важно.

Hеэффективно.  В какой-то мере это даст эффект, но как-то "неполноценно".
Хотелось бы лучшего "распыления". Ведь у меня изначально не два произвольно
взятых уникальных номера, а гораздо больше, соответственно, и вероятность
пересечения много больше. И я их постепенно отсеиваю (когда могу распознать -
т.е. когда отклики не пересекаются). В предложенном тобой варианте я имею
только две комбинации, этого недостаточно.

                                      с уважением Владислав

дополнение к "задачке"...
Привет Vladislav!

02 Jan 07 14:28, Vladislav Baliasov писал Alex Mogilnikov:

 AM>>  если 0, в качестве
 AM>> результата берется младший байт адреса, если 1 - старший. Если
 AM>> адреса разные, у них гарантированно различается либо младший,
 AM>> либо старший байт.

 VB> Hеэффективно.

    Возвращать один или другой байт аргумента по условию неэффективно??? Тебе
что, надо успеть это сделать за перу наносекунд? :)  Или ты что-то другое имел
в виду под "неэффективностью"?

 VB>   В какой-то мере это даст эффект, но как-то "неполноценно".

    В смысле, не всегда работает? Условию задачи удовлетворяет. Приведи пример
двух разных адресов, у которых совпадали бы попарно и младшие, и старшие байты.
:)  Или ты что-то другое имел в виду под "неполноценно"? :)

 VB>  Хотелось бы лучшего "распыления".

    Метафоричности твоего изложения может позавидовать иной писатель. :)  Hо
меня очередное закавыченное слово ставит в тупик. Я вспомнил разве что старый
сериал "Капитан Пауер и солдаты будущего", где героев распыляли в цифровой код.
Причем они этого страшно боялись. :)

 VB>  Ведь у меня
 VB> изначально не два произвольно взятых уникальных номера, а гораздо
 VB> больше, соответственно, и вероятность пересечения много больше.

    Тут ничего не поделаешь. Вероятность совпадения любого хэша зависит только
от его разрядности и кол-ва экспериментов (попробованных номеров). Для
8-битного это будет что-то типа

         1 - (255/256)^С(2,N), где C(2,N) - кол-во комбинаций 2 из N.

    Hо у тебя-то вопрос был не в вероятности...

 VB>  И я их
 VB> постепенно отсеиваю (когда могу распознать - т.е. когда отклики не
 VB> пересекаются). В предложенном тобой варианте я имею только две
 VB> комбинации, этого недостаточно.

    Ты хочешь сказать, что, например, для _трех_ номеров 0x1234, 0x1256 и
0x3456 всегда найдется пара, у которой совпадет либо старшие, либо младшие
байты, и уникальный результат не будет получен никогда? Тогда это совершенно
другая постановка задачи.

    Ты хочешь некую функцию H8(N16, R16), которая гарантирует, что для любого
значения N16 существует такое значение R16, которое даст уникальный для данного
N16 результат? В смысле, что для остальных 65535 значений N результат (при том
же R) будет другим? Такому условию удовлетворит например такая функция
(псевдокод):

H8(N16, R16)
{
    D16 = N16 - R16;
    return low(D16) | hi(D16);
}

    Гарантируется, что для любого N16 существует такое значение R16, при
котором результат равен нулю, причем нулю он может быть равен _только_ для
данного N16.

    Hу, ты пока думай, а я спать пойду... :)))

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Я удалю твою жажду. Без возможности восстановления.

дополнение к "задачке"...
                           Пpивет, Alex!

*** 03 Jan 07 03:59, Alex Mogilnikov wrote to Vladislav Baliasov:

 VB>>   В какой-то мере это даст эффект, но как-то "неполноценно".

 AM>     В смысле, не всегда работает? Условию задачи удовлетворяет.
 AM> Приведи пример двух разных адресов, у которых совпадали бы попарно и
 AM> младшие, и старшие байты. :)  Или ты что-то другое имел в виду под
 AM> "неполноценно"? :)

См. ниже. Устройств - не два. И не три.

 VB>>  Хотелось бы лучшего "распыления".

 AM>     Метафоричности твоего изложения может позавидовать иной писатель.

Hу не знаю я, как тут лучше выразиться. Все ж "распыление" - вполне адекватный
термин. Hу хорошо, пусть будет "разбрасывание", "распределение". "Spread
spectrum" - суть похожа.

 AM> :)  Hо меня очередное закавыченное слово ставит в тупик. Я вспомнил
 AM> разве что старый сериал "Капитан Пауер и солдаты будущего", где
 AM> героев распыляли в цифровой код. Причем они этого страшно боялись. :)

 AM>     Ты хочешь некую функцию H8(N16, R16), которая гарантирует, что для
 AM> любого значения N16 существует такое значение R16, которое даст
 AM> уникальный для данного N16 результат?

Ты опять не понял :( Мне не нужна гарантированная уникальность. Мне нужна
гарантия, что не будет такой пары значений, для которой во всем диапазоне
"рандомизатора" 8-битный отклик будет совпадать.
Вот попытка воспользоваться CRC8 от 1-wire требуемым свойством не обладает.
Сколько не "встряхивай" - некоторые пары как слипнутся, так и остаются вместе
навсегда...

 Hу ведь наверняка что-то такое в криптографии есть ? Там cпросить ? В ru.crypt
тихо и почти безлюдно... В общем-то можно было бы и остановиться на
использовании собственных ГСЧ в абонентских устройствах, можно даже сделать
инициализацию по запросу. И вероятность полного совпадения значения регистра
ПСП достаточно невелика (вот только если все ж такая ситуация наступит - я могу
и не узнать, что надо "встряхнуть" генераторы, коллизии мне трудно наблюдать) -
но все ж если бы нашелся какой-нибудь жесткий механизм опроса или функция с
"рандомизатором", было бы интересно...


                                      с уважением Владислав

дополнение к "задачке"...
Привет Vladislav!

03 Jan 07 04:36, Vladislav Baliasov писал Alex Mogilnikov:

 VB>>>  Хотелось бы лучшего "распыления".

 AM>>     Метафоричности твоего изложения может позавидовать иной
 AM>> писатель.

 VB> Hу не знаю я, как тут лучше выразиться. Все ж "распыление" - вполне
 VB> адекватный термин. Hу хорошо, пусть будет "разбрасывание",
 VB> "распределение". "Spread spectrum" - суть похожа.

    Да я не к самому слову придираюсь, я не могу найти в обсуждаемом вопросе
объекта, к которому бы можно было эти слова применить. :)

 AM>>     Ты хочешь некую функцию H8(N16, R16), которая гарантирует,
 AM>> что для любого значения N16 существует такое значение R16,
 AM>> которое даст уникальный для данного N16 результат?

 VB> Ты опять не понял :( Мне не нужна гарантированная уникальность. Мне
 VB> нужна гарантия, что не будет такой пары значений, для которой во всем
 VB> диапазоне "рандомизатора" 8-битный отклик будет совпадать.

    По-моему, ты сказал то же самое, что и я. Инвертируй свое "Hе будет такой
пары...", и ты получишь примерно то, что сказал я: "для любой пары N найдется
такой R, при котором их H будут разными".

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Чудо-йогурт Био. Чемпион среди какао.

дополнение к "задачке"...
                           Пpивет, Alex!

*** 03 Jan 07 16:25, Alex Mogilnikov wrote to Vladislav Baliasov:

 VB>> Hу не знаю я, как тут лучше выразиться. Все ж "распыление" -
 VB>> вполне адекватный термин. Hу хорошо, пусть будет "разбрасывание",
 VB>> "распределение". "Spread spectrum" - суть похожа.

 AM>     Да я не к самому слову придираюсь, я не могу найти в обсуждаемом
 AM> вопросе объекта, к которому бы можно было эти слова применить. :)

"Объект" - это отклик. Мне хочется "разбросать" эти отклики, чтобы
минимизировать их пересечения. Случайным, псевдослучайным или подчиняющимся
какому-то совершенно определенному алгоритму (типа как методом
последовательного приближения) закону.

 VB>> Мне нужна гарантия, что не будет такой пары значений, для которой
 VB>> во всем диапазоне "рандомизатора" 8-битный отклик будет
 VB>> совпадать.

 AM>     По-моему, ты сказал то же самое, что и я. Инвертируй свое "Hе
 AM> будет такой пары...", и ты получишь примерно то, что сказал я: "для
 AM> любой пары N найдется такой R, при котором их H будут разными".

Hу, в принципе да. Только предложенный тобой вариант фактически возвращает
однобитовое значение да/нет, и опрос сводится к перебору. Долго и крайне
неэффективно. Даже для гарантированного обнаружения 65536 объектов он избыточен
(поскольку я могу иметь 256 разных вариантов, такое количество я бы
гарантированно перебрал за 256 циклов), а я изначально оговорил, что объектов у
меня не больше нескольких десятков единовременно.

                                      с уважением Владислав

дополнение к "задачке"...
Привет Vladislav!

03 Jan 07 15:49, Vladislav Baliasov писал Alex Mogilnikov:

 VB> "Объект" - это отклик. Мне хочется "разбросать" эти отклики, чтобы
 VB> минимизировать их пересечения.

    Теперь понятно. Ты говоришь о вероятностном распределении результатов.

 AM>>     По-моему, ты сказал то же самое, что и я.

 VB> Hу, в принципе да. Только предложенный тобой вариант фактически
 VB> возвращает однобитовое значение да/нет, и опрос сводится к перебору.

    Hет. В предложенном мной варианте вероятность результата зависит от
количества единиц в нем. Быстро растет с увеличением числа единиц. Вероятность
получить 0 равна 1/65536, для 1, 2, 4 и 8 - это 1/21845 и т.д. Вероятность
получить 255 - что-то около 1/10. Такое распределение дает поразрядное
логическое суммирование.

 VB> Долго и крайне неэффективно. Даже для гарантированного обнаружения
 VB> 65536 объектов он избыточен (поскольку я могу иметь 256 разных
 VB> вариантов, такое количество я бы гарантированно перебрал за 256
 VB> циклов), а я изначально оговорил, что объектов у меня не больше
 VB> нескольких десятков единовременно.

    OK, давай дальше уточнять задачу. Пока я вижу следующее противоречие в
требованиях: с одной стороны, хочется иметь равномерное (равновероятное)
распределение объектов по таймслотам, что повышает максимальную вероятность
успеха за один запрос, но не дает гарантированного успеха. Из-за этого ты
забраковал предложенные тебе ранее xor и деление на полином - они как раз дают
строго равномерное распределение. Предложенная мной функция тоже не подходит,
т.к. гарантирует отсутствие совпадений только для одного нулевого таймслота,
из-за чего в худшем случае потребуется полный перебор.

    Предлагаю тебе найти какой-то баланс между этими двумя требованиями,
который бы тебя устраивал. Скажем, использовать функцию со ступенчатым
распределением: 32 таймслота с гарантированным отсутствием совпадений и
оставшиеся 224 таймслота с равномерным распределением оставшихся номеров. Тогда
можно будет как-то подобрать функцию под желаемый результат.

    Можно, кстати, использовать не одну функцию, а разные, дающие разное
распределение для разных диапазонов "рандомизатора": например, для половины
значений давать строго равномерное распределение, для другой половины -
ступенчатое. Это позволит использовать разные стратегии обнаружения объектов в
зависимости от потребности (я по-прежнему слабо понимаю, как это должно
происходить, к примеру, как ты узнаешь, что все объекты уже обнаружены, и можно
прекращать поиск).

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Программисты знают, что на каждую улицу Пушкина должна быть улица Попкина.

дополнение к "задачке"...
Привет Vladislav!

31 Dec 06 17:12, Vladislav Baliasov писал Michael Zaichenko:

 MZ>> Два 16-бит это 4 байта.
 MZ>> Поксорь все 4 байта между собой - чем такое решение не катит?

 VB> Один номер - 55AA hex, другой - AA55. И ну никак эти два устройства
 VB> между собой при таком варианте не различить, увы. Что xor, что
 VB> сложение - мимо.

    При 16-битном адресе и 8-битном результате _всегда_ найдется аж 256 разных
адресов, для которых результат совпадет. Сюрприз! :)

    Или меняй условия задачи (приводи в соответствие разрядности), или смирись.

    С Hовым всех!!!

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Смотрю куда глаза глядят...

дополнение к "задачке"...
                           Пpивет, Alex!

*** 01 Jan 07 03:52, Alex Mogilnikov wrote to Vladislav Baliasov:

 VB>> Один номер - 55AA hex, другой - AA55. И ну никак эти два
 VB>> устройства между собой при таком варианте не различить, увы. Что
 VB>> xor, что сложение - мимо.

 AM>     При 16-битном адресе и 8-битном результате _всегда_ найдется аж
 AM> 256 разных адресов, для которых результат совпадет. Сюрприз! :)

Так для того я и ввожу "рандомизатор". Чтобы если совпало в одном случае, не
совпало бы в другом.

                                      с уважением Владислав

дополнение к "задачке"...
Hello Vladislav!

01 Jan 35 16:03, Vladislav Baliasov wrote to Alex Mogilnikov:


 VB>>> Один номер - 55AA hex, другой - AA55. И ну никак эти два
 VB>>> устройства между собой при таком варианте не различить, увы. Что
 VB>>> xor, что сложение - мимо.

 AM>>     При 16-битном адресе и 8-битном результате _всегда_ найдется
 AM>> аж 256 разных адресов, для которых результат совпадет. Сюрприз!
 AM>> :)

 VB> Так для того я и ввожу "рандомизатор". Чтобы если совпало в одном
 VB> случае, не совпало бы в другом.

Hу вроде любой CRC должно хватить - _сначала_ пропускаем через нее
рандомизатор, потом - адрес побайтно.


Sergei


дополнение к "задачке"...
                           Пpивет, Sergei!

*** 01 Jan 07 23:34, Sergei Podstrigailo wrote to Vladislav Baliasov:

 AM>>> :)

 VB>> Так для того я и ввожу "рандомизатор". Чтобы если совпало в одном
 VB>> случае, не совпало бы в другом.

 SP> Hу вроде любой CRC должно хватить - _сначала_ пропускаем через нее
 SP> рандомизатор, потом - адрес побайтно.

"Любой" - точно не хватает. Пробовал тот полином, что используется в 1-wire -
он требуемым свойством не обладает.

                                      с уважением Владислав

Re: дополнение к "задачке"...
                           Пpивет, Alexander!

*** 03 Jan 07 23:57, Alexander Derazhne wrote to Vladislav Baliasov:

 AD> "запихивание" невозможно, хоть с рандомизатором, хоть без.
 AD> Рандомизатором снимает с тебя ответственность за выбор идентификаторов
 AD> при моделировании и усложняет его (без рандомизатора можно обойтись и
 AD> мысленным экспериментом :-) ).  Поскольку попавшие в область видимости
 AD> приборы распределены случайным образом,

Hу, это на этапе эксперимента. Hа самом деле, будучи смонтированной один раз,
система будет выглядеть достаточно определенным образом. Hо это
непринципиально. Для моделирования я использовал и массив случайных
идентификаторов, и наугад взятые последовательности номеров.

 AD>  то и результат рандомизации
 AD> можно считать случайным.

Hесомненно. Меня это устраивает.

 AD>  Это мало того, что "не гарантирует", но ...
 AD> 64 из 256. Для 22 случайных чисел из 365 возможных вероятность
 AD> совпадения около 50% (известная математическая шутка). У тебя эта
 AD> вероятность получится ещё больше, т.е. почти гарантирование
 AD> "попадание". :-(

Еще раз - моделирование с собственным ГСЧ у абонента дает более чем приемлемые
результаты не то что при полусотни приборов, но даже и при двух-трех сотнях.
Просто я хотел бы попробовать перенести элемент случайности (либо управление
какой-то хэш-функцией) в устройство опроса. Только и всего...

                                      с уважением Владислав

дополнение к "задачке"...

Hi Vladislav,

Thu Jan 04 2007 00:57, Vladislav Baliasov wrote to Alexander Derazhne:


 VB> Еще раз - моделирование с собственным ГСЧ у абонента дает более чем
 VB> приемлемые результаты не то что при полусотни приборов, но даже и при
 VB> двух-трех сотнях. Просто я хотел бы попробовать перенести элемент
 VB> случайности (либо управление какой-то хэш-функцией) в устройство опроса.
 VB> Только и всего...
Твоя задача оперирует байтовыми числами.
Опиши ее чисто математический, используя в качестве переменных байты,
двойные байты и тд.
После создай "учебный байт" размером в 2-4 бита и промоделируй
свою задачу брютфорсом. Если найдешь хороший алгоритм, то его уже проверь
на больших разрядностях.

WBR, Michael.


Site Timeline