Полезный способ взглянуть на любой код оценки состояния, чтобы спросить: «Какова вероятность каждого результата?»
Например, есть тестовое выражение test
, и вероятность егоЗначение true равно 1/100, тогда в среднем оно говорит вам очень мало для ваших вложений в процессорные циклы.
Фактически вы можете определить это количественно.Если это правда, то объем информации, которую вы узнали, довольно хорош.Примерно log2 (100/1) = 6,6 бит, но это происходит только 1 раз из 100.В остальных 99 раз объем информации, которую вы изучаете, составляет log2 (100/99) = 0,014 бит.Практически ничего.Так что такое состояние в среднем говорит вам очень мало.Это не «работает» очень усердно.
Хороший способ закончить количественную оценку - это умножить то, что вы узнали по каждому результату, на вероятность этого перекодирования и сложить их.Это говорит о том, что вы изучаете в среднем .
Это 6,6 * 1/100 + .014 * 99/100 = .066 + .014 = .08 бит, что очень плохо,(Это число называется энтропией решения.)
С другой стороны, если у вас есть точка принятия решения, где каждый результат одинаково вероятен, он в среднем получает 1 бит.,Фактически, это самая большая работа, которую может выполнить двоичное решение.
Так что, если вы беспокоитесь о выполнении условного теста (вы можете и не быть), попробуйте заставить его заработать свои циклы.