Потому что нам нужны именно обратные коэфициенты — чем больше расстояние, тем процент выживаемости меньше, и наоборот. А если делить например, 84 / (84+24+26+133+28) то это получается прямая пропорциональность — чем больше расстояние, тем процент выживаемости больше, но нам не это нужно. Ну а делить нужно для того, чтобы определить в процентном соотношении, насколько близок данный результат от желаемого.
Да, действительно, ошибок нет.
Но вот, что мне показалось интересным — если убрать строчку
random.shuffle(chest)
то результат стремится к 1/2. То есть, фактически, из общего числа опытов (first) перемешиванием мы убираем некоторую часть тех, когда был выбран второй сундук. В таком случае подвох получается в том, что для некоторого количества наблюдений вероятность все таки будет 2/3 (фактически, это 66.(6)% людей, которые второй вытянули золотую монету, из числа тех, кто первой монетой вытянул золотую), но если брать конкретный случай — определенный человек стоит перед уже выбранным сундуком и с одной золотой монетой в руке и вытаскивает вторую — то вероятность вытянуть следующей монетой золотую получается 0,5. Или я все же не прав?
Я также такой способ использовал для хранения комментариев, только для хранения хеша использовал поле blob, и все ASCII символы, тогда один байт мог содержать 256 позиций, 2 байта — 65536, и так дальше…
Условие теперь также исполняется, только теперь в другом месте. Проблема была в том, что код:
m_stack.pop();
должен в любом случае исполнятся, независимо от условия:
m_field[pos_in_field] != 0
const уже был в объявлении. Убрал, потому что были ошибки компиляции "invalid conversion from ‘const char*’ to ‘char*’". Компилятор — gcc version 4.4.4 (Gentoo Hardened 4.4.4-r2 p1.2, pie-0.4.5).
Вы сможете выложить Вашу версию интерпретатора куда-то в общий доступ?
Я тестировал свой код на brainfuck.tk, Brainfuck Developer, Linux'овом bf — на этих интерпретаторах он работает.
И кстати, если на ячейке из значением ноль выполнить команду декремента, то каким будет новое значение ячейки?
Ну тогда это плюс в вашу сторону. Если Ваша реализация более гибка, то я думаю, Вы сможете сделать не только более качественный продукт, но и более фукциональный. И удачи Вам в дальнейшей разработке!
Но вот, что мне показалось интересным — если убрать строчку
то результат стремится к 1/2. То есть, фактически, из общего числа опытов (first) перемешиванием мы убираем некоторую часть тех, когда был выбран второй сундук. В таком случае подвох получается в том, что для некоторого количества наблюдений вероятность все таки будет 2/3 (фактически, это 66.(6)% людей, которые второй вытянули золотую монету, из числа тех, кто первой монетой вытянул золотую), но если брать конкретный случай — определенный человек стоит перед уже выбранным сундуком и с одной золотой монетой в руке и вытаскивает вторую — то вероятность вытянуть следующей монетой золотую получается 0,5. Или я все же не прав?
const уже был в объявлении. Убрал, потому что были ошибки компиляции "invalid conversion from ‘const char*’ to ‘char*’". Компилятор — gcc version 4.4.4 (Gentoo Hardened 4.4.4-r2 p1.2, pie-0.4.5).
Я тестировал свой код на brainfuck.tk, Brainfuck Developer, Linux'овом bf — на этих интерпретаторах он работает.
И кстати, если на ячейке из значением ноль выполнить команду декремента, то каким будет новое значение ячейки?