Мы с друзьями играли в DSA (в основном немецкую настольную RPG, очень похожую на D & D). Мне было интересно, какова вероятность передачи бросков, поэтому вам придется написать код для его расчета.
Ваш персонаж определяется статистикой (от 8 до 14) и (TV) значениями талантов (от 0 до 21). А пока мы будем использовать скалолазание в качестве примера.
Тесты талантов
Талант (скалолазание) выглядит следующим образом: (Courage-Dexterity-Strength) TV: 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
телевизором (см. Вывод).Это Код-гольфтак что кратчайший код в байтах побеждает!
[12, 14, 8], 3
?Ответы:
Pyth -
212019 байтовСохранено 1 байт благодаря @ThomasKwa
Тестовый пакет .
источник
stat,stat,stat,TV
только сейчас. Однако, если вы можете изменить это легко, это было бы хорошо. Не могли бы вы дать объяснение?Дьялог АПЛ, 28 байт
Этот подход такой же, как у @ Maltysen's. Мы не можем быть уверены в точности 0,5%, если просто нарисуем несколько тысяч случайных бросков костей, поэтому вместо этого мы берем среднее значение по всем возможным броскам. Это принимает три характеристики в качестве левого аргумента и значение таланта справа.
Попробуй это здесь !
источник