Талант котиться в DSA


9

Ми з друзями грали в DSA (в основному німецька RPG настільна, як D&D). Мені було цікаво, який шанс на проходження рулонів, тож вам доведеться написати якийсь код для його обчислення.

Ваш персонаж визначається статистикою (від 8 до 14) та (ТВ) значеннями талантів (від 0 до 21). Зараз ми використаємо альпінізм як приклад.

Тести талантів

Талант (лазіння) виглядає приблизно так: (Кураж-спритність-сила) Телевізор: 7. Щоб перевірити персонажа на талант, ви котитеся на цій статистиці за допомогою 20-тигранних кісток і намагайтеся опуститись нижче або дорівнювати статтю, якщо ти це добре робиш Якщо ні, ви можете використовувати свої телевізійні точки, щоб зменшити ролик у співвідношенні 1: 1.

Приклад

Мисливець з відвагою 12, спритність 13 і сила 14 намагається піднятися на дерево, його телевізор - 7.

Він закочує 3, значення нижче 12, тому він передав цей рулон.

Потім він котить 17, 17 - на 4 більше, ніж 13, тож 4 ​​телевізора звикають із 3 лівими.

За останній рулон ви отримуєте 14, місце на пройденому.

Всі рулони проходять і мисливцеві вдалося піднятися на дерево, залишилось 3 телевізора.

Вхідні дані

4 значення у будь-якому обраному вами форматі, взяті зі стандартного введення вашої мови. Але це має бути в такому порядку.

Наприклад, 12 13 14 7або 12,13,14,7як масив {12,13,14,7} або змішаний[12, 14, 8], 3

Вихідні дані

Шанс того, як часто проходять рулони.

Наприклад (для значень вище)0.803

12,14,8,3 = 0.322

11,11,12,11 = 0.840

Для бонусу: Знову формулювання тут не є проблемою, виведіть її як завгодно, але в наступному порядку:

failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7 

і так далі, поки телебачення не залишиться.

12,13,14,7 = 0.197/0.075/0.089/0.084/0.078/0.073/0.068/0.063/0.273

12,14,8,3 = 0.678/0.056/0.051/0.047/0.168

Виклик і правила та бонус

  • Ви дізнаєтесь, чи є вхідний шанс пропустити рулони з точністю до 0,5%.

  • -20%, якщо ваша програма також видає шанси на передачу nтелевізора (див. Вихід).

  • Це є , тому найкоротший код у байтах виграє!


1
Чи включає "4 значення у будь-якому обраному вами форматі", приймаючи їх у іншому порядку?
Мартін Ендер

1
Або щось подібне [12, 14, 8], 3?
Мартін Ендер

Я подумав, що у мене включено замовлення, його зараз. Дозволені також змішані входи.
Евмель

Відповіді:


2

Pyth - 21 20 19 байт

Збережено 1 байт завдяки @ThomasKwa

.Omgvzsg#0-VdQ^SyT3

Тестовий сюїт .


Pyth - це так добре ... Це питання типу APL, і в мене лише 27 в APL.
lirtosiast

порядок введення вважався таким, що stat,stat,stat,TVя я лише вказав, що зараз. Однак якщо ви можете легко змінити це було б добре. Не могли б ви пояснити?
Евмель

@ Впевнений, що змінити замовлення не повинно бути проблемою, я зараз по телефону, я зроблю це, коли повернусь додому.
Мальтісен

1

Діалог APL, 28 байт

{(+/÷⍴)⍵≥∊+/¨0⌈(⊂⍺)-⍨¨⍳3⍴20}

Цей підхід такий самий, як і @ Maltysen's. Ми не можемо бути впевнені в 0,5% точності, якщо просто намалюємо кілька тисяч випадкових рулонів кісток, тому замість цього ми взямо середнє значення для всіх можливих рулонів. Це сприймає три статистичні дані як лівий аргумент, а значення таланту - праворуч.

Спробуйте тут !

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.