Перш за все я не впевнений, де це питання слід розміщувати. Я запитую, чи є проблема зі статистикою NP-Complete і чи не вирішувати її програмно. Я розміщую це тут, оскільки проблема зі статистикою є центральною точкою.
Я намагаюся знайти кращу формулу для вирішення проблеми. Проблема полягає в тому, що якщо у мене є 4d6 (4 звичайних 6-сторонніх кубиків) і закатати їх все одночасно, видалити штамп з найменшим числом (зване "скидання"), а потім підсумовуй решту 3, яка ймовірність кожного можливого результату ? Я знаю, що відповідь така:
Sum (Frequency): Probability
3 (1): 0.0007716049
4 (4): 0.0030864198
5 (10): 0.0077160494
6 (21): 0.0162037037
7 (38): 0.0293209877
8 (62): 0.0478395062
9 (91): 0.0702160494
10 (122): 0.0941358025
11 (148): 0.1141975309
12 (167): 0.1288580247
13 (172): 0.1327160494
14 (160): 0.1234567901
15 (131): 0.1010802469
16 (94): 0.0725308642
17 (54): 0.0416666667
18 (21): 0.0162037037
Середнє значення - 12,24, а середнє відхилення - 2,847.
Я знайшов вищезгадану відповідь грубою силою і не знаю, як чи є для цього формула. Я підозрюю, що ця проблема є NP-Complete, і тому її можна вирішити лише грубою силою. Можливо, вдасться отримати всі ймовірності 3d6 (3 звичайних 6-гранних кубика), а потім перекинути кожну з них вгору. Це було б швидше, ніж груба сила, тому що я маю швидку формулу, коли всі кістки зберігаються.
Я запрограмував формулу для збереження всіх кісток у коледжі. Я запитав свого професора статистики про це, і він знайшов цю сторінку , яку він мені потім пояснив. Існує велика різниця в продуктивності між цією формулою і грубою силою: 50d6 зайняло 20 секунд, але 8d6 краплі знизилися через 40 секунд (у хрому не вистачає пам'яті).
Чи ця проблема NP-завершена? Якщо так, будь ласка, надайте доказ, якщо ні, будь-ласка, вкажіть формулу, яка не є грубою, щоб вирішити це.
Зауважте, що я мало знаю про NP-Complete, тому я можу думати про NP, NP-Hard або щось інше. Доказ NP-повноти для мене марний. Єдина причина, чому я прошу, - це не дозволяти людям здогадуватися. І, будь ласка, розмовляйте зі мною, оскільки минуло багато часу, коли я працював над цим: я не пам’ятаю статистику так добре, як мені може знадобитися це вирішити.
В ідеалі я шукаю більш загальну формулу для кількості X кісток з Y сторонами, коли N з них скинуто, але я починаю з чогось набагато простішого.
Редагувати:
Я також вважаю за краще формулу для вихідних частот, але вона прийнятна лише для вихідних імовірностей.
Для тих, хто цікавиться, я запрограмував відповідь whuber в JavaScript на моєму GitHub (в цьому виконуються лише тести, які фактично використовують визначені функції).