Вопрос к знатокам теории вероятностей. - страница 3

 
simpleton:

Нетрудно и в уме прикинуть, что в числе 12 два двоичных бита, как и в числе 10 ... 

И вообще, 0 единичных битов встречаются  только в числе 0, все остальные числа имеют отличное от 0 число битов...


Да? 
 
simpleton:
 

К тому же, в таком виде она не работает. Это - самый главный её недостаток:


Ну да, приоритет операций нужно поправить) http://codepad.org/2rMeYT6v

Многовато действий.

Разверните цикл, который используете и сравните :) Возможно, компилятор делает это за вас, а если нет - то всё ещё хуже, т.к. условные переходы плохо сказываются на производительности (даже учитывая branch prediction в процессорах).

 
tara:

Да? 
Единичных бита - да. Или - нет?
 
Мне интереснее двоичные биты. Могу поболтать о "троичных". Кстати, они ближе к идеалу (2.7182818285). 
 
anonymous:


Ну да, приоритет операций нужно поправить) http://codepad.org/2rMeYT6v

Разверните цикл, который используете и сравните :) Возможно, компилятор делает это за вас, а если нет - то всё ещё хуже, т.к. условные переходы плохо сказываются на производительности (даже учитывая branch prediction в процессорах).

Лучше теперь вы проверьте и убедитесь, что всё зависит от количества бит. При малом количестве бит идиома проигрывает. А при большом - выигрывает. Ничего удивительного в этом не вижу.

В любом случае прямой перебор не даёт залезть за 30 бит - долго ждать результата, причём, с каждым новым битом ожидание удваивается.

При использовании идиомы для заданных не менее 20, скажем, "орлов" при 30 "бросках" даёт в моей виртуалке 23 секунды ожидания, реализация "в лоб" - 142 секунды. То есть, в самом тяжёлом случае проигрыш - всего в 6 раз. Вы, наверное, ожидали большей разницы? Лично я для 30 "бросков" ожидал большей.

 
tara:
Мне интереснее двоичные биты. Могу поболтать о "троичных". Кстати, они ближе к идеалу (2.7182818285). 

А по теме - есть, что сообщить интересного? Формулу какую-нибудь, соображения?

Я, например, по теме дал некоторый инструмент, который может оказаться полезным topic-starter'у.

 
simpleton:

При малом количестве бит идиома проигрывает.

Логично, при таком раскладе таблица должна выигрывать) Либо можно поиграться с кодами Грея, там bitcount последующего числа вообще можно за 1 сложение/вычитание вычислять.

Я ничего не ждал, а предложил очевидный способ оптимизации перебора.

 
simpleton:

А по теме - есть, что сообщить интересного? Формулу какую-нибудь, соображения?

Я, например, по теме дал некоторый инструмент, который может оказаться полезным topic-starter'у.


Думаешь, ему нужен инструмент? 
 
anonymous:

Логично, при таком раскладе таблица должна выигрывать) Либо можно поиграться с кодами Грея, там bitcount последующего числа вообще можно за 1 сложение/вычитание вычислять.

Я ничего не ждал, а предложил очевидный способ оптимизации перебора.



Осталось опубликовать работающий вариант (не всем может быть ясно, в каком месте там с приоритетами не так, и, собственно, что надо исправить).
 
tara:

Думаешь, ему нужен инструмент? 

Для проверки - а верна ли формула или метод расчёта, которые он найдёт?

Мне бы лично явно был нужен инструмент такой проверки. Заодно и прямые результаты на малых величинах.

Причина обращения: