|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Igor Krassikov 2:463/59.1 11 Mar 2003 08:20:00 To : Mihail Trischenkov Subject : Re: Особый перебор двоичных значений -------------------------------------------------------------------------------- 10 Mar 03, Soldatenkov Mitea ==. Mihail Trischenkov: MT>> Слышал про какой-то метод, позволяющий перебирать двоичные комбинации MT>> таким образом, что за один прием изменяется только один бит. Hапример, MT>> для двух бит: 00 01 11 10 Для трех: 000 001 011 010 110 100 101 111 MT>> Подскажите, пожалуйста, название метода, в инете пороюсь. Hу а если MT>> алгоритм кинете, ещё лучше. SM> Hу, как вариант: с каждым битом работать так: для каждого бита, помнить SM> дополнительный бит. Если происходит попытка увеличения бита n, то SM> обозначим дополнительный бит за A, а увеличиваемый бит за B. Тогда, если SM> A=B, то попытатся увеличить бит n+1, A=not(A). Иначе B=not(B). Стартово, SM> все дополнительные биты, неравны основным (A=not(B)). Честно говоря, не очень внимательно следил за тредом, так что не уверен, было ли это тут или нет. Если было - виноват, если нет - то вот простейший способ генерации кода Грея: for(i = 0; i < n; i++) gray = i ^ (i >> 1); Best regards. Igor --- That's all * Origin: KIV ~&C[++!]o (FidoNet 2:463/59.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/22893e6d8eb2.html, оценка из 5, голосов 10
|