Size: a a a

2020 September 02

PV

Peter V in pro.js
th.witness
Как?
Посчитал
источник

PV

Peter V in pro.js
Програмно посчитал
источник

t

th.witness in pro.js
Peter V
Програмно посчитал
Как понимать?
источник

PV

Peter V in pro.js
let good = 0;
let bad = 0;

const numbers = { '12': 8, '10': 5, '11': 8 };

function traverse(numbers, value = 1, lastNumber = '') {
 const totalCount = Object.values(numbers).reduce((a,b) => a + b);
 if (!totalCount) {
   return good += value;
 }

 const prob = value * 1 / totalCount;

 Object.keys(numbers).forEach((number) => {
   const numberCount = numbers[number]
   if (!numberCount) {
     return;
   }

   if (lastNumber === number) {
     bad += prob * numberCount;
   } else {
     const newNumbers = Object.assign({}, numbers);
     newNumbers[number]--;
     traverse(newNumbers, prob * numberCount, number);
   }
 });
}

traverse(numbers);
console.log(good, bad);
источник

П

Павел) in pro.js
А ты это понял? Или просто опыт?)
источник

PV

Peter V in pro.js
Peter V
let good = 0;
let bad = 0;

const numbers = { '12': 8, '10': 5, '11': 8 };

function traverse(numbers, value = 1, lastNumber = '') {
 const totalCount = Object.values(numbers).reduce((a,b) => a + b);
 if (!totalCount) {
   return good += value;
 }

 const prob = value * 1 / totalCount;

 Object.keys(numbers).forEach((number) => {
   const numberCount = numbers[number]
   if (!numberCount) {
     return;
   }

   if (lastNumber === number) {
     bad += prob * numberCount;
   } else {
     const newNumbers = Object.assign({}, numbers);
     newNumbers[number]--;
     traverse(newNumbers, prob * numberCount, number);
   }
 });
}

traverse(numbers);
console.log(good, bad);
источник

t

th.witness in pro.js
Peter V
let good = 0;
let bad = 0;

const numbers = { '12': 8, '10': 5, '11': 8 };

function traverse(numbers, value = 1, lastNumber = '') {
 const totalCount = Object.values(numbers).reduce((a,b) => a + b);
 if (!totalCount) {
   return good += value;
 }

 const prob = value * 1 / totalCount;

 Object.keys(numbers).forEach((number) => {
   const numberCount = numbers[number]
   if (!numberCount) {
     return;
   }

   if (lastNumber === number) {
     bad += prob * numberCount;
   } else {
     const newNumbers = Object.assign({}, numbers);
     newNumbers[number]--;
     traverse(newNumbers, prob * numberCount, number);
   }
 });
}

traverse(numbers);
console.log(good, bad);
Иэх.
источник

П

Павел) in pro.js
спасибо
источник

PV

Peter V in pro.js
th.witness
Иэх.
У тебя есть аналитическое решение?
источник

t

th.witness in pro.js
th.witness
Первый день — 21 значений, а второй — ...?
@peter_v, отсюда.
источник

t

th.witness in pro.js
Но у меня явно были ошибки.
источник

PV

Peter V in pro.js
th.witness
@peter_v, отсюда.
Ну так оно это и делает, просто ты руками будешь считать до китайской пасхи
источник

PV

Peter V in pro.js
Рекурсивно считает вероятность
источник

НС

Никита Сковорода... in pro.js
Peter V
0.000466
Вечером доберусь до компа, поверю и покажу
источник

НС

Никита Сковорода... in pro.js
Но с первого взгляда получилось многовато?
источник

НС

Никита Сковорода... in pro.js
Это число очевидно ограничено сверху как (2/3)**20, а снизу как (1/2)**30
источник

НС

Никита Сковорода... in pro.js
Точный ответ только с компа покажу, набирать неудобно сейчас
источник

PV

Peter V in pro.js
Никита Сковорода
Точный ответ только с компа покажу, набирать неудобно сейчас
Ок
источник

НС

Никита Сковорода... in pro.js
th.witness
@ChALkeR, сильно разнится с верным ответом?
Вечером проверю
источник

НС

Никита Сковорода... in pro.js
Там не должно было получиться больше чем (2/3)**20
источник