Определите Частоту чисел, обнаруживающихся в бросках костей

 class ClickTracker extends Component {
   trackClick(e){

   }

   componentWillMount() {
     document.addEventListener('click', this.trackClick); 
   }

   componentWillUnmount() {
     document.removeEventListener('click', this.trackClick);
   }

   render(){
     return (
         {this.props.children}
     );
   }
 }

5
задан Bill the Lizard 28 August 2011 в 03:18
поделиться

7 ответов

Черновой набросок рекурсивного способа сделать это:

public static IEnumerable<KeyValuePair<int, int>> GetFrequenciesByOutcome(int nDice, int nSides)
{
    int maxOutcome = (nDice * nSides);
    Dictionary<int, int> outcomeCounts = new Dictionary<int, int>();
    for(int i = 0; i <= maxOutcome; i++)
        outcomeCounts[i] = 0;

    foreach(int possibleOutcome in GetAllOutcomes(0, nDice, nSides))
        outcomeCounts[possibleOutcome] = outcomeCounts[possibleOutcome] + 1;

    return outcomeCounts.Where(kvp => kvp.Value > 0);
}

private static IEnumerable<int> GetAllOutcomes(int currentTotal, int nDice, int nSides)
{
    if (nDice == 0) yield return currentTotal;
    else
    {
        for (int i = 1; i <= nSides; i++)
            foreach(int outcome in GetAllOutcomes(currentTotal + i, nDice - 1, nSides))
                yield return outcome;
    }
}

Если я не ошибаюсь, это должно выложить KeyValuePairs, организованный как [ключ, частота].

Править: К вашему сведению, после выполнения этого, это показывает частоты для GetFrequenciesByOutcome (2, 6), чтобы быть:

2: 1

3: 2

4: 3

5: 4

6: 5

7: 6

8: 5

9: 4

10: 3

11: 2

12: 1

3
ответ дан 18 December 2019 в 06:13
поделиться

Существуют 6*6 = 36 комбинаций для двух игр в кости.

2 = 1+1 может только появиться однажды, таким образом, его частота является 1/36. 3 = 1+2 или 2+1, таким образом, его частота является 2/36 = 1/18. 4 = 1+3, 2+2, или 3+1, таким образом, его частота является 3/36 = 1/12.

Можно убрать остальных к двенадцать.

Любой игрок трик-трака знает их хорошо.

11
ответ дан 18 December 2019 в 06:13
поделиться

Нет никакого реального "алгоритма" или необходимого моделирования - это - простое вычисление на основе формулы, полученной De Moivre:

http://www.mathpages.com/home/kmath093.htm

И это не "кривая нормального распределения" или нормальное распределение.

5
ответ дан 18 December 2019 в 06:13
поделиться

Существует много материала онлайн о вероятности игры в кости. Вот одна ссылка, которая выручила меня с Euler вопросом Проекта:

http://gwydir.demon.co.uk/jo/probability/calcdice.htm

2
ответ дан 18 December 2019 в 06:13
поделиться

Реализация JavaScript с помощью динамического функционального создания:

<script>
var f;
function prob(dice, value)
 {
var f_s = 'f = function(dice, value) {var occur = 0; var a = [];';
for (x = 0; x < dice; x++)
 {
f_s += 'for (a[' + x + '] = 1; a[' + x + '] <= 6; a[' + x + ']++) {';
 }
f_s += 'if (eval(a.join(\'+\')) == value) {occur++;}';
for (x = 0; x < dice; x++)
 {
f_s += '}';
 }
f_s += 'return occur;}';
eval(f_s);
var occ = f(dice, value);
return [occ, occ + '/' + Math.pow(6, dice), occ / Math.pow(6, dice)];
 };

alert(prob(2, 12)); // 2 die, seeking 12
                    // returns array [1, 1/36, 0.027777777777777776]
</script>

Править: Скорее разочарованный никто не указал на это; должен был заменить 6 * dice с Math.pow(6, dice). Больше никаких ошибок как этот...

1
ответ дан 18 December 2019 в 06:13
поделиться

Аккуратный фактоид...

Знаете ли Вы, что треугольник Паскаля является распределением вероятностей сумм 2-сторонней игры в кости N?

   1 1    - 1 die, 1 chance at 1, 1 chance at 2
  1 2 1   - 2 dice, 1 chance at 2, 2 chances at 3, 1 chance at 4
 1 3 3 1  - 3 dice, 1 chance at 3, 3 chances at 4, 3 chances at 5, 1 chance at 6 
1 4 6 4 1 - etc.
1
ответ дан 18 December 2019 в 06:13
поделиться

Кажется, существует некоторая тайна, окружающая точно, "почему" это, и хотя duffymo объяснил часть ее, я смотрю на другое сообщение, в котором говорится:

Не должно быть никакой причины, почему 5, 6 и 7 должен быть прокручен больше [чем 2], так как первый список умирания является независимым событием от второго списка умирания, и у них обоих есть равная вероятность 1-6 из того, чтобы быть прокрученным.

Существует определенное обращение к этому. Но это неправильно..., потому что первый список влияет на возможности. Обоснование может, вероятно, наиболее легко быть сделано через пример.

Скажите, что я пытаюсь выяснить, более вероятна ли вероятность прокрутки 2 или 7 на двух играх в кости. Если я прокручиваюсь, первые умирают и получают 3, каковы мои возможности теперь прокрутки в общей сложности 7? Очевидно, 1 в 6. Каковы мои возможности прокрутки в общей сложности 2? 0 в 6..., потому что нет ничего, которое я могу прокрутиться на втором, умирают, чтобы иметь мое общее количество быть 2.

Поэтому 7 очень (большинство), вероятно, чтобы быть прокрученным..., потому что независимо от того, что я прокручиваю на первом, умирают, я могу все еще достигнуть, корректное общее количество путем прокрутки правильного числа на втором умирают. 6 и 8 одинаково немного менее вероятны, 5 и еще 9, и так далее, пока мы не достигаем 2 и 12, одинаково вряд ли в 1 в 36 шансах за штуку.

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

0
ответ дан 18 December 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: